实现分层实体漏洞知识库与实体级完整度监控
这个提交包含在:
文件差异内容过多而无法显示
加载差异
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated_at": "2026-03-19T23:44:56+00:00",
|
||||
"generated_at": "2026-03-20T00:56:32+00:00",
|
||||
"title": "\u5f53\u524d\u67b6\u6784\u5e93",
|
||||
"summary": "\u5de5\u4f5c\u53f0\u3001\u63a7\u5236\u9762\u3001\u6570\u636e\u5c42\u3001\u6388\u6743\u8fb9\u754c\u4e0e\u7cfb\u7edf\u8986\u76d6\u7684\u5f53\u524d\u771f\u503c\u89c6\u56fe\u3002",
|
||||
"sections": [
|
||||
@@ -25,6 +25,14 @@
|
||||
"label": "\u8fd1\u4e24\u5e74\u5168\u91cf\u7cfb\u7edf",
|
||||
"value": "42"
|
||||
},
|
||||
{
|
||||
"label": "\u5df2\u7f16\u76ee\u5b9e\u4f53",
|
||||
"value": "97"
|
||||
},
|
||||
{
|
||||
"label": "\u53d1\u73b0 backlog",
|
||||
"value": "17"
|
||||
},
|
||||
{
|
||||
"label": "\u5f53\u524d\u8fd0\u884c",
|
||||
"value": "140"
|
||||
@@ -49,7 +57,7 @@
|
||||
},
|
||||
{
|
||||
"label": "\u751f\u6210\u65f6\u95f4",
|
||||
"value": "2026-03-19T23:44:56+00:00"
|
||||
"value": "2026-03-20T00:56:32+00:00"
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
@@ -179,6 +187,10 @@
|
||||
"label": "\u7cfb\u7edf Registry",
|
||||
"value": "08-threat-intel/registry/systems/*.json"
|
||||
},
|
||||
{
|
||||
"label": "\u5b9e\u4f53 Registry",
|
||||
"value": "08-threat-intel/registry/entities/*.json"
|
||||
},
|
||||
{
|
||||
"label": "\u8fd0\u884c Registry",
|
||||
"value": "08-threat-intel/registry/runs/*.json"
|
||||
@@ -278,6 +290,16 @@
|
||||
"href": "/docs/retired-sources.html",
|
||||
"description": "\u9000\u5f79\u6e90\u3001\u9000\u5f79\u539f\u56e0\u4e0e replacement map\u3002"
|
||||
},
|
||||
{
|
||||
"label": "entity catalog report",
|
||||
"href": "/docs/entity-catalog-report.html",
|
||||
"description": "\u5206\u5c42\u5b9e\u4f53\u8986\u76d6\u3001history-full \u5b8c\u6574\u5ea6\u4e0e workflow \u6307\u6807\u3002"
|
||||
},
|
||||
{
|
||||
"label": "entity discovery backlog",
|
||||
"href": "/docs/entity-discovery-backlog.html",
|
||||
"description": "\u5f85\u7f16\u76ee repo / \u63d2\u4ef6 / \u5305 backlog \u4e0e\u7b49\u5f85\u539f\u56e0\u3002"
|
||||
},
|
||||
{
|
||||
"label": "repro-map \u771f\u503c",
|
||||
"href": "/docs/repro-map.html",
|
||||
@@ -323,6 +345,21 @@
|
||||
"href": "/data/monitor-summary.json",
|
||||
"description": "\u6bcf\u65e5\u76d1\u63a7\u6458\u8981\u3001open alerts \u4e0e\u6700\u8fd1\u5168\u7eff\u65f6\u95f4\u3002"
|
||||
},
|
||||
{
|
||||
"label": "entity-completeness.json",
|
||||
"href": "/data/entity-completeness.json",
|
||||
"description": "\u5b9e\u4f53\u7ea7 catalog \u5b8c\u6574\u5ea6\u3001\u7248\u672c\u6620\u5c04\u4e0e workflow \u8986\u76d6\u3002"
|
||||
},
|
||||
{
|
||||
"label": "entity-discovery-backlog.json",
|
||||
"href": "/data/entity-discovery-backlog.json",
|
||||
"description": "\u53d1\u73b0\u4f46\u5c1a\u672a\u6b63\u5f0f\u7f16\u76ee\u7684 repo / \u63d2\u4ef6 / \u5305 backlog\u3002"
|
||||
},
|
||||
{
|
||||
"label": "entity-queues.json",
|
||||
"href": "/data/entity-queues.json",
|
||||
"description": "discovery/history/latest/workflow \u56db\u7c7b\u961f\u5217\u6458\u8981\u3002"
|
||||
},
|
||||
{
|
||||
"label": "runs.json",
|
||||
"href": "/runs.json",
|
||||
@@ -363,6 +400,18 @@
|
||||
"label": "\u8fd0\u884c\u5f52\u6863\u6839\u76ee\u5f55",
|
||||
"value": "06-case-studies/generated-runs/<run-id>/"
|
||||
},
|
||||
{
|
||||
"label": "\u5b9e\u4f53\u5b8c\u6574\u5ea6",
|
||||
"value": "/data/entity-completeness.json"
|
||||
},
|
||||
{
|
||||
"label": "\u53d1\u73b0 backlog",
|
||||
"value": "/data/entity-discovery-backlog.json"
|
||||
},
|
||||
{
|
||||
"label": "\u5b9e\u4f53\u961f\u5217",
|
||||
"value": "/data/entity-queues.json"
|
||||
},
|
||||
{
|
||||
"label": "\u9ed8\u8ba4\u5165\u53e3",
|
||||
"value": "/index.html"
|
||||
|
||||
@@ -45,6 +45,8 @@ const DOC_HUB_ITEMS = [
|
||||
{ title: "source-map 镜像", href: "/docs/source-map.html", description: "系统覆盖、来源、输出目录和 secure-code 主题真值。", badge: "source-map" },
|
||||
{ title: "source catalog audit", href: "/docs/source-catalog-audit.html", description: "active/retired source、replacement map 与覆盖摘要。", badge: "audit" },
|
||||
{ title: "retired sources", href: "/docs/retired-sources.html", description: "退役源、退役原因和 replacement_sources 真值。", badge: "retired" },
|
||||
{ title: "entity catalog report", href: "/docs/entity-catalog-report.html", description: "分层实体覆盖、history-full 完整度与 workflow 指标。", badge: "entities" },
|
||||
{ title: "entity discovery backlog", href: "/docs/entity-discovery-backlog.html", description: "待编目 repo / 插件 / 包 backlog 与等待原因。", badge: "backlog" },
|
||||
{ title: "repro-map 镜像", href: "/docs/repro-map.html", description: "默认漏洞家族、浏览器要求和日志策略真值。", badge: "repro-map" },
|
||||
{ title: "覆盖矩阵镜像", href: "/docs/coverage-matrix.html", description: "当前全库覆盖矩阵的本地镜像。", badge: "coverage" },
|
||||
{ title: "安全编码索引", href: "/docs/secure-code-index.html", description: "secure-code 修复主题索引镜像。", badge: "secure-code" },
|
||||
@@ -58,6 +60,9 @@ const DATA_HUB_ITEMS = [
|
||||
{ title: "alerts.json", href: "/data/alerts.json", description: "source 告警状态机、failure streak 与 resolved 记录。", badge: "json" },
|
||||
{ title: "monitor-summary.json", href: "/data/monitor-summary.json", description: "每日监控摘要、open alerts 与最近全绿时间。", badge: "json" },
|
||||
{ title: "source-catalog-audit.json", href: "/data/source-catalog-audit.json", description: "source catalog 审计真值与 retired/replacement 关系。", badge: "json" },
|
||||
{ title: "entity-completeness.json", href: "/data/entity-completeness.json", description: "实体级 catalog 完整度、版本映射和 workflow 覆盖。", badge: "json" },
|
||||
{ title: "entity-discovery-backlog.json", href: "/data/entity-discovery-backlog.json", description: "发现但尚未正式编目的 repo / 插件 / 包 backlog。", badge: "json" },
|
||||
{ title: "entity-queues.json", href: "/data/entity-queues.json", description: "discovery/history/latest/workflow 四类队列摘要。", badge: "json" },
|
||||
{ title: "runs.json", href: "/runs.json", description: "最近运行的结构化详情,可用于 UI 和调试。", badge: "json" },
|
||||
{ title: "systems.json", href: "/systems.json", description: "系统级覆盖、分类、更新时间和浏览器证据统计。", badge: "json" },
|
||||
{ title: "advisories.json", href: "/advisories.json", description: "漏洞条目元数据、来源和 secure-code 主题。", badge: "json" },
|
||||
@@ -93,6 +98,7 @@ const state = {
|
||||
profiles: {},
|
||||
architecture: null,
|
||||
completeness: null,
|
||||
entityCompleteness: null,
|
||||
sourceHealth: null,
|
||||
alerts: [],
|
||||
monitorSummary: null,
|
||||
@@ -288,9 +294,12 @@ function familyOptions() {
|
||||
|
||||
function metricCards() {
|
||||
const completeness = state.completeness || state.summary?.completeness || {};
|
||||
const entityCoverage = state.entityCompleteness || state.summary?.entity_coverage || completeness.entity_coverage || {};
|
||||
const monitoring = state.monitorSummary || state.summary?.monitoring || {};
|
||||
const advisoryTotal = Number(completeness.advisory_total || state.summary?.advisory_count || 0);
|
||||
const advisorySuccess = Number(completeness.verified_real || 0);
|
||||
const catalogedEntities = Number(entityCoverage.cataloged_entity_total || 0);
|
||||
const candidateEntities = Number(entityCoverage.candidate_entity_total || 0);
|
||||
const activeSources = Number(monitoring.active_source_count || state.sourceHealth?.active_source_count || 0);
|
||||
const greenSources = Number(monitoring.green_source_count || state.sourceHealth?.green_source_count || 0);
|
||||
const openAlerts = Number(monitoring.open_alert_count || state.sourceHealth?.open_alert_count || 0);
|
||||
@@ -304,6 +313,13 @@ function metricCards() {
|
||||
color: "var(--accent-green)",
|
||||
iconName: "report"
|
||||
},
|
||||
{
|
||||
label: "分层实体",
|
||||
value: catalogedEntities,
|
||||
note: `backlog ${candidateEntities}`,
|
||||
color: "var(--accent-yellow)",
|
||||
iconName: "systems"
|
||||
},
|
||||
{
|
||||
label: "active sources",
|
||||
value: activeSources,
|
||||
@@ -774,6 +790,7 @@ function renderPanel(panelKey, title, meta, iconName, content) {
|
||||
|
||||
function renderCompletenessPanel(panelKey, compact = false) {
|
||||
const completeness = state.completeness || state.summary?.completeness || {};
|
||||
const entityCoverage = state.entityCompleteness || state.summary?.entity_coverage || completeness.entity_coverage || {};
|
||||
const sourceHealth = state.sourceHealth || completeness.source_health || {};
|
||||
const systems = (state.completeness?.systems || []).map((system) => `
|
||||
<article class="plan-card">
|
||||
@@ -816,12 +833,30 @@ function renderCompletenessPanel(panelKey, compact = false) {
|
||||
<strong>open alerts</strong>
|
||||
<span>${escapeHtml(sourceHealth.open_alert_count || 0)}</span>
|
||||
</article>
|
||||
<article class="detail-stat">
|
||||
<strong>cataloged entities</strong>
|
||||
<span>${escapeHtml(entityCoverage.cataloged_entity_total || 0)}</span>
|
||||
</article>
|
||||
<article class="detail-stat">
|
||||
<strong>candidate backlog</strong>
|
||||
<span>${escapeHtml(entityCoverage.candidate_entity_total || 0)}</span>
|
||||
</article>
|
||||
<article class="detail-stat">
|
||||
<strong>workflow complete</strong>
|
||||
<span>${escapeHtml(entityCoverage.workflow_complete_count || 0)}</span>
|
||||
</article>
|
||||
<article class="detail-stat">
|
||||
<strong>version mapped</strong>
|
||||
<span>${escapeHtml(entityCoverage.version_mapped_count || 0)}</span>
|
||||
</article>
|
||||
</div>
|
||||
<div class="plan-grid" style="margin-top:16px;">${systems || `<div class="empty-state">暂无系统完整度数据。</div>`}</div>
|
||||
${compact ? "" : `
|
||||
<div class="detail-actions" style="margin-top:16px;">
|
||||
<a class="button button-secondary" href="/docs/testing-completeness-report.html" target="_blank" rel="noreferrer">${icon("docs")}<span>打开中文报告</span></a>
|
||||
<a class="button button-secondary" href="/docs/entity-catalog-report.html" target="_blank" rel="noreferrer">${icon("docs")}<span>打开实体报告</span></a>
|
||||
<a class="button button-secondary" href="/data/completeness.json" target="_blank" rel="noreferrer">${icon("json")}<span>打开 completeness.json</span></a>
|
||||
<a class="button button-secondary" href="/data/entity-completeness.json" target="_blank" rel="noreferrer">${icon("json")}<span>打开 entity-completeness.json</span></a>
|
||||
<a class="button button-secondary" href="/data/source-health.json" target="_blank" rel="noreferrer">${icon("json")}<span>打开 source-health.json</span></a>
|
||||
</div>
|
||||
${failures.length ? `<div class="callout" style="margin-top:16px;"><strong>Ingest 未清零</strong><div class="plan-copy">${escapeHtml(failures.join(" | "))}</div></div>` : ""}
|
||||
@@ -1114,7 +1149,8 @@ function renderRunWorkspace() {
|
||||
{ label: "概要", copy: advisory.summary || "当前漏洞条目没有摘要。" },
|
||||
{ label: "成功判据", copy: (profile.success_criteria || []).join(" | ") || "当前复现档案没有定义成功判据。" },
|
||||
{ label: "Seed / 攻击思路", copy: (run.reasoning_lines || []).join("\n\n") || "当前运行没有记录思路说明。" },
|
||||
{ label: "允许目标", copy: (profile.allowed_target_types || []).join(", ") || "当前复现档案没有声明允许目标类型。" }
|
||||
{ label: "允许目标", copy: (profile.allowed_target_types || []).join(", ") || "当前复现档案没有声明允许目标类型。" },
|
||||
{ label: "版本与对象", copy: `${advisory.advisory_scope || "core"} · ${advisory.version_confidence || "unknown"} · ${(advisory.affected_version_ranges || []).join(", ") || "版本待补齐"}` }
|
||||
];
|
||||
|
||||
const evidenceContent = `
|
||||
@@ -1239,6 +1275,21 @@ function renderRunWorkspace() {
|
||||
<div class="tag-row">
|
||||
${(advisory.aliases || []).map((alias) => `<span class="tag">${escapeHtml(alias)}</span>`).join("")}
|
||||
${(advisory.secure_code_topics || []).map((topic) => `<a class="tag" href="/docs/secure-code-index.html" target="_blank" rel="noreferrer">${escapeHtml(topic)}</a>`).join("")}
|
||||
${(advisory.entity_refs || []).map((item) => `<span class="tag">${escapeHtml(item.entity_type || "entity")} · ${escapeHtml(item.entity_id || "-")}</span>`).join("")}
|
||||
</div>
|
||||
<div class="plan-grid" style="margin-bottom:16px;">
|
||||
<article class="plan-card">
|
||||
<span class="plan-label">影响对象</span>
|
||||
<div class="plan-copy">${escapeHtml((advisory.affected_components || []).map((item) => item.name).join(" | ") || "未定义")}</div>
|
||||
</article>
|
||||
<article class="plan-card">
|
||||
<span class="plan-label">版本映射</span>
|
||||
<div class="plan-copy">${escapeHtml((advisory.affected_version_ranges || []).join(" | ") || advisory.version_gap_reason || "未定义")}</div>
|
||||
</article>
|
||||
<article class="plan-card">
|
||||
<span class="plan-label">Workflow</span>
|
||||
<div class="plan-copy">${escapeHtml(advisory.workflow?.vuln_family || "unknown")} · ${escapeHtml(advisory.workflow?.entry_surface || "-")}</div>
|
||||
</article>
|
||||
</div>
|
||||
<div class="source-links">${sourceLinks}</div>
|
||||
`)}
|
||||
@@ -1558,7 +1609,7 @@ async function loadData(preserveSelection = true) {
|
||||
renderSyncState("loading", "刷新中", `本地时间 ${new Date().toLocaleTimeString("zh-CN", { hour12: false })}`);
|
||||
|
||||
try {
|
||||
const [summary, runs, systems, advisories, profiles, architecture, completeness, sourceHealth, alerts, monitorSummary] = await Promise.all([
|
||||
const [summary, runs, systems, advisories, profiles, architecture, completeness, entityCompleteness, sourceHealth, alerts, monitorSummary] = await Promise.all([
|
||||
fetchJson("/summary.json"),
|
||||
fetchJson("/runs.json"),
|
||||
fetchJson("/systems.json"),
|
||||
@@ -1566,6 +1617,7 @@ async function loadData(preserveSelection = true) {
|
||||
fetchJson("/profiles.json"),
|
||||
fetchJson("/architecture.json"),
|
||||
fetchJson("/data/completeness.json"),
|
||||
fetchJson("/data/entity-completeness.json"),
|
||||
fetchJson("/data/source-health.json"),
|
||||
fetchJson("/data/alerts.json"),
|
||||
fetchJson("/data/monitor-summary.json")
|
||||
@@ -1578,6 +1630,7 @@ async function loadData(preserveSelection = true) {
|
||||
state.profiles = profiles;
|
||||
state.architecture = architecture;
|
||||
state.completeness = completeness;
|
||||
state.entityCompleteness = entityCompleteness;
|
||||
state.sourceHealth = sourceHealth;
|
||||
state.alerts = alerts;
|
||||
state.monitorSummary = monitorSummary;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated_at": "2026-03-19T23:44:56+00:00",
|
||||
"generated_at": "2026-03-20T00:56:32+00:00",
|
||||
"advisory_total": 89,
|
||||
"registry_advisory_total": 2399,
|
||||
"scope": "latest-run-backed-advisories",
|
||||
@@ -175,37 +175,680 @@
|
||||
"active_source_count": 101,
|
||||
"green_source_count": 101,
|
||||
"failure_count": 0,
|
||||
"last_fully_green_run": "2026-03-19T23:44:51+00:00",
|
||||
"last_fully_green_run": "2026-03-20T00:56:25+00:00",
|
||||
"open_alert_count": 0,
|
||||
"resolved_alert_count": 4
|
||||
},
|
||||
"entity_coverage": {
|
||||
"generated_at": "2026-03-20T00:56:31+00:00",
|
||||
"cataloged_entity_total": 97,
|
||||
"candidate_entity_total": 17,
|
||||
"history_full_complete_count": 40,
|
||||
"latest_green_count": 97,
|
||||
"workflow_complete_count": 97,
|
||||
"version_mapped_count": 49,
|
||||
"official_source_covered_count": 97,
|
||||
"plugin_history_full_count": 4,
|
||||
"systems": [
|
||||
{
|
||||
"system_id": "adminer",
|
||||
"display_name": "Adminer",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "adobe-commerce",
|
||||
"display_name": "Adobe Commerce",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "angular",
|
||||
"display_name": "Angular",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "apache-httpd",
|
||||
"display_name": "Apache HTTP Server",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "apache-tomcat",
|
||||
"display_name": "Apache Tomcat",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "aspnet-core",
|
||||
"display_name": "ASP.NET Core",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "astro",
|
||||
"display_name": "Astro",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 3,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "caddy",
|
||||
"display_name": "Caddy",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "directus",
|
||||
"display_name": "Directus",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "discourse",
|
||||
"display_name": "Discourse",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "django",
|
||||
"display_name": "Django",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "drupal",
|
||||
"display_name": "Drupal",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "echo",
|
||||
"display_name": "Echo",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "esbuild",
|
||||
"display_name": "esbuild",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "express",
|
||||
"display_name": "Express",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "fastify",
|
||||
"display_name": "Fastify",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "flask",
|
||||
"display_name": "Flask",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "ghost",
|
||||
"display_name": "Ghost",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "gin",
|
||||
"display_name": "Gin",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "gitea",
|
||||
"display_name": "Gitea",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "gitlab-ce",
|
||||
"display_name": "GitLab CE",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "grafana",
|
||||
"display_name": "Grafana",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "hapi",
|
||||
"display_name": "Hapi",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "haproxy",
|
||||
"display_name": "HAProxy",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "jenkins",
|
||||
"display_name": "Jenkins",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "joomla",
|
||||
"display_name": "Joomla",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "kibana",
|
||||
"display_name": "Kibana",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "koa",
|
||||
"display_name": "Koa",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "laravel",
|
||||
"display_name": "Laravel",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "magento-open-source",
|
||||
"display_name": "Magento Open Source",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "mattermost",
|
||||
"display_name": "Mattermost",
|
||||
"cataloged_entity_total": 5,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 5,
|
||||
"version_mapped_count": 5,
|
||||
"official_source_covered_count": 5,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "mediawiki",
|
||||
"display_name": "MediaWiki",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "medusa",
|
||||
"display_name": "Medusa",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "moodle",
|
||||
"display_name": "Moodle",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nestjs",
|
||||
"display_name": "NestJS",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nextjs",
|
||||
"display_name": "Next.js",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nginx",
|
||||
"display_name": "Nginx",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nodejs",
|
||||
"display_name": "Node.js",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nuxt",
|
||||
"display_name": "Nuxt",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "opencart",
|
||||
"display_name": "OpenCart",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "openmage",
|
||||
"display_name": "OpenMage / Mage-OS",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "phpmyadmin",
|
||||
"display_name": "phpMyAdmin",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "prestashop",
|
||||
"display_name": "PrestaShop",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "rails",
|
||||
"display_name": "Ruby on Rails",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "react",
|
||||
"display_name": "React",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "redmine",
|
||||
"display_name": "Redmine",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "saleor",
|
||||
"display_name": "Saleor",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "shopware",
|
||||
"display_name": "Shopware",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "spring-boot",
|
||||
"display_name": "Spring Boot",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "spring-framework",
|
||||
"display_name": "Spring Framework",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "spring-security",
|
||||
"display_name": "Spring Security",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "strapi",
|
||||
"display_name": "Strapi",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "sveltekit",
|
||||
"display_name": "SvelteKit",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "symfony",
|
||||
"display_name": "Symfony",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "traefik",
|
||||
"display_name": "Traefik",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "undici",
|
||||
"display_name": "Undici",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "vite",
|
||||
"display_name": "Vite",
|
||||
"cataloged_entity_total": 5,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 5,
|
||||
"version_mapped_count": 4,
|
||||
"official_source_covered_count": 5,
|
||||
"plugin_total": 3
|
||||
},
|
||||
{
|
||||
"system_id": "vue",
|
||||
"display_name": "Vue",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "webpack",
|
||||
"display_name": "webpack",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "werkzeug",
|
||||
"display_name": "Werkzeug",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "woocommerce",
|
||||
"display_name": "WooCommerce",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "wordpress",
|
||||
"display_name": "WordPress",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
}
|
||||
],
|
||||
"queues": {
|
||||
"discovery_queue": 17,
|
||||
"history_queue": 15,
|
||||
"latest_queue": 0,
|
||||
"workflow_queue": 2176
|
||||
}
|
||||
},
|
||||
"monitor_summary": {
|
||||
"generated_at": "2026-03-19T23:44:51+00:00",
|
||||
"generated_at": "2026-03-20T00:56:25+00:00",
|
||||
"active_source_count": 101,
|
||||
"green_source_count": 101,
|
||||
"source_failure_count": 0,
|
||||
"open_alert_count": 0,
|
||||
"resolved_alert_count": 4,
|
||||
"last_fully_green_run": "2026-03-19T23:44:51+00:00",
|
||||
"last_fully_green_run": "2026-03-20T00:56:25+00:00",
|
||||
"source_catalog": {
|
||||
"system_count": 62,
|
||||
"source_count": 179,
|
||||
"retired_source_count": 78
|
||||
},
|
||||
"ingest": {
|
||||
"new_count": 7,
|
||||
"updated_count": 5,
|
||||
"new_count": 0,
|
||||
"updated_count": 0,
|
||||
"failure_count": 0,
|
||||
"systems_touched": [
|
||||
"kibana",
|
||||
"mattermost",
|
||||
"nextjs"
|
||||
]
|
||||
"systems_touched": []
|
||||
},
|
||||
"validation": {
|
||||
"passed": true,
|
||||
"error_count": 0,
|
||||
"errors": []
|
||||
},
|
||||
"entity_coverage": {
|
||||
"cataloged_entity_total": 97,
|
||||
"candidate_entity_total": 17,
|
||||
"history_full_complete_count": 40,
|
||||
"workflow_complete_count": 97,
|
||||
"version_mapped_count": 49,
|
||||
"official_source_covered_count": 97
|
||||
}
|
||||
},
|
||||
"historical_blockers": [
|
||||
@@ -213,6 +856,7 @@
|
||||
"Family profiles previously used note-only attack runners and dry-run placeholders.",
|
||||
"Baseline and browser steps were skipped when environment readiness was not enforced.",
|
||||
"Latest completeness now uses one advisory -> latest run semantics instead of historical run piles.",
|
||||
"Source health now counts only status=active sources; retired sources are audited separately with replacement links."
|
||||
"Source health now counts only status=active sources; retired sources are audited separately with replacement links.",
|
||||
"Entity coverage now separates cataloged entities from discovery backlog so infinite internet scope no longer pollutes completion numbers."
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,639 @@
|
||||
{
|
||||
"generated_at": "2026-03-20T00:56:31+00:00",
|
||||
"cataloged_entity_total": 97,
|
||||
"candidate_entity_total": 17,
|
||||
"history_full_complete_count": 40,
|
||||
"latest_green_count": 97,
|
||||
"workflow_complete_count": 97,
|
||||
"version_mapped_count": 49,
|
||||
"official_source_covered_count": 97,
|
||||
"plugin_history_full_count": 4,
|
||||
"systems": [
|
||||
{
|
||||
"system_id": "adminer",
|
||||
"display_name": "Adminer",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "adobe-commerce",
|
||||
"display_name": "Adobe Commerce",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "angular",
|
||||
"display_name": "Angular",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "apache-httpd",
|
||||
"display_name": "Apache HTTP Server",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "apache-tomcat",
|
||||
"display_name": "Apache Tomcat",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "aspnet-core",
|
||||
"display_name": "ASP.NET Core",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "astro",
|
||||
"display_name": "Astro",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 3,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "caddy",
|
||||
"display_name": "Caddy",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "directus",
|
||||
"display_name": "Directus",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "discourse",
|
||||
"display_name": "Discourse",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "django",
|
||||
"display_name": "Django",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "drupal",
|
||||
"display_name": "Drupal",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "echo",
|
||||
"display_name": "Echo",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "esbuild",
|
||||
"display_name": "esbuild",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "express",
|
||||
"display_name": "Express",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "fastify",
|
||||
"display_name": "Fastify",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "flask",
|
||||
"display_name": "Flask",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "ghost",
|
||||
"display_name": "Ghost",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "gin",
|
||||
"display_name": "Gin",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "gitea",
|
||||
"display_name": "Gitea",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "gitlab-ce",
|
||||
"display_name": "GitLab CE",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "grafana",
|
||||
"display_name": "Grafana",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "hapi",
|
||||
"display_name": "Hapi",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "haproxy",
|
||||
"display_name": "HAProxy",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "jenkins",
|
||||
"display_name": "Jenkins",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "joomla",
|
||||
"display_name": "Joomla",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "kibana",
|
||||
"display_name": "Kibana",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "koa",
|
||||
"display_name": "Koa",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "laravel",
|
||||
"display_name": "Laravel",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "magento-open-source",
|
||||
"display_name": "Magento Open Source",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "mattermost",
|
||||
"display_name": "Mattermost",
|
||||
"cataloged_entity_total": 5,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 5,
|
||||
"version_mapped_count": 5,
|
||||
"official_source_covered_count": 5,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "mediawiki",
|
||||
"display_name": "MediaWiki",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "medusa",
|
||||
"display_name": "Medusa",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "moodle",
|
||||
"display_name": "Moodle",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nestjs",
|
||||
"display_name": "NestJS",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nextjs",
|
||||
"display_name": "Next.js",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nginx",
|
||||
"display_name": "Nginx",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nodejs",
|
||||
"display_name": "Node.js",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nuxt",
|
||||
"display_name": "Nuxt",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "opencart",
|
||||
"display_name": "OpenCart",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "openmage",
|
||||
"display_name": "OpenMage / Mage-OS",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "phpmyadmin",
|
||||
"display_name": "phpMyAdmin",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "prestashop",
|
||||
"display_name": "PrestaShop",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "rails",
|
||||
"display_name": "Ruby on Rails",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "react",
|
||||
"display_name": "React",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "redmine",
|
||||
"display_name": "Redmine",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "saleor",
|
||||
"display_name": "Saleor",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "shopware",
|
||||
"display_name": "Shopware",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "spring-boot",
|
||||
"display_name": "Spring Boot",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "spring-framework",
|
||||
"display_name": "Spring Framework",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "spring-security",
|
||||
"display_name": "Spring Security",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "strapi",
|
||||
"display_name": "Strapi",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "sveltekit",
|
||||
"display_name": "SvelteKit",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "symfony",
|
||||
"display_name": "Symfony",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "traefik",
|
||||
"display_name": "Traefik",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "undici",
|
||||
"display_name": "Undici",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "vite",
|
||||
"display_name": "Vite",
|
||||
"cataloged_entity_total": 5,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 5,
|
||||
"version_mapped_count": 4,
|
||||
"official_source_covered_count": 5,
|
||||
"plugin_total": 3
|
||||
},
|
||||
{
|
||||
"system_id": "vue",
|
||||
"display_name": "Vue",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "webpack",
|
||||
"display_name": "webpack",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "werkzeug",
|
||||
"display_name": "Werkzeug",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "woocommerce",
|
||||
"display_name": "WooCommerce",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "wordpress",
|
||||
"display_name": "WordPress",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
}
|
||||
],
|
||||
"queues": {
|
||||
"discovery_queue": 17,
|
||||
"history_queue": 15,
|
||||
"latest_queue": 0,
|
||||
"workflow_queue": 2176
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,206 @@
|
||||
[
|
||||
{
|
||||
"candidate_id": "directus--repo-candidate--https-github-com-directus-directus",
|
||||
"root_system_id": "directus",
|
||||
"display_name": "directus / directus",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/directus/directus/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "ghost--repo-candidate--https-github-com-tryghost-ghost",
|
||||
"root_system_id": "ghost",
|
||||
"display_name": "TryGhost / Ghost",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/TryGhost/Ghost/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "gitea--repo-candidate--https-github-com-go-gitea-gitea",
|
||||
"root_system_id": "gitea",
|
||||
"display_name": "go-gitea / gitea",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/go-gitea/gitea/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "magento-open-source--repo-candidate--https-github-com-magento-magento2",
|
||||
"root_system_id": "magento-open-source",
|
||||
"display_name": "magento / magento2",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/magento/magento2/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "medusa--repo-candidate--https-github-com-medusajs-medusa",
|
||||
"root_system_id": "medusa",
|
||||
"display_name": "medusajs / medusa",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/medusajs/medusa/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "nextjs--repo-candidate--https-github-com-vercel-next-js",
|
||||
"root_system_id": "nextjs",
|
||||
"display_name": "vercel / next.js",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/vercel/next.js/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "nuxt--repo-candidate--https-github-com-nuxt-nuxt",
|
||||
"root_system_id": "nuxt",
|
||||
"display_name": "nuxt / nuxt",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/nuxt/nuxt/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "opencart--repo-candidate--https-github-com-opencart-opencart",
|
||||
"root_system_id": "opencart",
|
||||
"display_name": "opencart / opencart",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/opencart/opencart/releases",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "openmage--repo-candidate--https-github-com-openmage-magento-lts",
|
||||
"root_system_id": "openmage",
|
||||
"display_name": "OpenMage / magento-lts",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/OpenMage/magento-lts/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "prestashop--repo-candidate--https-github-com-prestashop-prestashop",
|
||||
"root_system_id": "prestashop",
|
||||
"display_name": "PrestaShop / PrestaShop",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/PrestaShop/PrestaShop/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "react--repo-candidate--https-github-com-facebook-react",
|
||||
"root_system_id": "react",
|
||||
"display_name": "facebook / react",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/facebook/react/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "saleor--repo-candidate--https-github-com-saleor-saleor",
|
||||
"root_system_id": "saleor",
|
||||
"display_name": "saleor / saleor",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/saleor/saleor/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "shopware--repo-candidate--https-github-com-shopware-shopware",
|
||||
"root_system_id": "shopware",
|
||||
"display_name": "shopware / shopware",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/shopware/shopware/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "strapi--repo-candidate--https-github-com-strapi-strapi",
|
||||
"root_system_id": "strapi",
|
||||
"display_name": "strapi / strapi",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/strapi/strapi/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "vite--repo-candidate--https-github-com-vitejs-vite",
|
||||
"root_system_id": "vite",
|
||||
"display_name": "vitejs / vite",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/vitejs/vite/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "vue--repo-candidate--https-github-com-vuejs-core",
|
||||
"root_system_id": "vue",
|
||||
"display_name": "vuejs / core",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/vuejs/core/security",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
},
|
||||
{
|
||||
"candidate_id": "woocommerce--repo-candidate--https-github-com-woocommerce-woocommerce",
|
||||
"root_system_id": "woocommerce",
|
||||
"display_name": "woocommerce / woocommerce",
|
||||
"entity_type": "repo",
|
||||
"status": "candidate",
|
||||
"reason": "source catalog exposed a repo-like URL that is not yet cataloged as an entity",
|
||||
"source": "https://github.com/woocommerce/woocommerce/security/advisories",
|
||||
"risk": "medium",
|
||||
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
|
||||
"canonical_id": ""
|
||||
}
|
||||
]
|
||||
文件差异内容过多而无法显示
加载差异
@@ -1,29 +1,33 @@
|
||||
{
|
||||
"generated_at": "2026-03-19T23:44:51+00:00",
|
||||
"generated_at": "2026-03-20T00:56:25+00:00",
|
||||
"active_source_count": 101,
|
||||
"green_source_count": 101,
|
||||
"source_failure_count": 0,
|
||||
"open_alert_count": 0,
|
||||
"resolved_alert_count": 4,
|
||||
"last_fully_green_run": "2026-03-19T23:44:51+00:00",
|
||||
"last_fully_green_run": "2026-03-20T00:56:25+00:00",
|
||||
"source_catalog": {
|
||||
"system_count": 62,
|
||||
"source_count": 179,
|
||||
"retired_source_count": 78
|
||||
},
|
||||
"ingest": {
|
||||
"new_count": 7,
|
||||
"updated_count": 5,
|
||||
"new_count": 0,
|
||||
"updated_count": 0,
|
||||
"failure_count": 0,
|
||||
"systems_touched": [
|
||||
"kibana",
|
||||
"mattermost",
|
||||
"nextjs"
|
||||
]
|
||||
"systems_touched": []
|
||||
},
|
||||
"validation": {
|
||||
"passed": true,
|
||||
"error_count": 0,
|
||||
"errors": []
|
||||
},
|
||||
"entity_coverage": {
|
||||
"cataloged_entity_total": 97,
|
||||
"candidate_entity_total": 17,
|
||||
"history_full_complete_count": 40,
|
||||
"workflow_complete_count": 97,
|
||||
"version_mapped_count": 49,
|
||||
"official_source_covered_count": 97
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated_at": "2026-03-19T23:44:51+00:00",
|
||||
"generated_at": "2026-03-20T00:56:25+00:00",
|
||||
"system_count": 62,
|
||||
"source_count": 179,
|
||||
"active_source_count": 101,
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"generated_at": "2026-03-19T23:44:51+00:00",
|
||||
"generated_at": "2026-03-20T00:56:25+00:00",
|
||||
"active_source_count": 101,
|
||||
"green_source_count": 101,
|
||||
"failure_count": 0,
|
||||
"all_green": true,
|
||||
"last_fully_green_run": "2026-03-19T23:44:51+00:00",
|
||||
"last_fully_green_run": "2026-03-20T00:56:25+00:00",
|
||||
"retries_performed": 0,
|
||||
"probes": [
|
||||
{
|
||||
"system_id": "adminer",
|
||||
"source_name": "OSV Adminer",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.096,
|
||||
"elapsed_seconds": 0.099,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -19,7 +19,7 @@
|
||||
"system_id": "adobe-commerce",
|
||||
"source_name": "Adobe Magento Security Index",
|
||||
"source_kind": "vendor-index",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.017,
|
||||
"kind": "vendor-index",
|
||||
"items_seen": 46
|
||||
},
|
||||
@@ -27,7 +27,7 @@
|
||||
"system_id": "angular",
|
||||
"source_name": "OSV Angular",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.013,
|
||||
"elapsed_seconds": 0.009,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -35,7 +35,7 @@
|
||||
"system_id": "apache-httpd",
|
||||
"source_name": "Apache HTTPD Security",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.024,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "html-links",
|
||||
"items_seen": 182
|
||||
},
|
||||
@@ -43,7 +43,7 @@
|
||||
"system_id": "apache-httpd",
|
||||
"source_name": "CISA KEV Apache HTTPD",
|
||||
"source_kind": "kev-json",
|
||||
"elapsed_seconds": 0.074,
|
||||
"elapsed_seconds": 0.044,
|
||||
"kind": "kev-json",
|
||||
"items_seen": 1546
|
||||
},
|
||||
@@ -59,7 +59,7 @@
|
||||
"system_id": "apache-tomcat",
|
||||
"source_name": "CISA KEV Tomcat",
|
||||
"source_kind": "kev-json",
|
||||
"elapsed_seconds": 0.064,
|
||||
"elapsed_seconds": 0.044,
|
||||
"kind": "kev-json",
|
||||
"items_seen": 1546
|
||||
},
|
||||
@@ -67,7 +67,7 @@
|
||||
"system_id": "aspnet-core",
|
||||
"source_name": "OSV ASP.NET Core",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.006,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -75,7 +75,7 @@
|
||||
"system_id": "astro",
|
||||
"source_name": "OSV Astro",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.013,
|
||||
"elapsed_seconds": 0.045,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -83,7 +83,7 @@
|
||||
"system_id": "caddy",
|
||||
"source_name": "OSV Caddy",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.064,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -91,7 +91,7 @@
|
||||
"system_id": "directus",
|
||||
"source_name": "Directus GitHub Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.037,
|
||||
"elapsed_seconds": 0.023,
|
||||
"kind": "html-links",
|
||||
"items_seen": 127
|
||||
},
|
||||
@@ -99,7 +99,7 @@
|
||||
"system_id": "directus",
|
||||
"source_name": "OSV Directus",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.023,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -107,7 +107,7 @@
|
||||
"system_id": "discourse",
|
||||
"source_name": "Discourse Release Notes RSS",
|
||||
"source_kind": "rss-feed",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.02,
|
||||
"kind": "rss-feed",
|
||||
"items_seen": 30
|
||||
},
|
||||
@@ -115,7 +115,7 @@
|
||||
"system_id": "discourse",
|
||||
"source_name": "Discourse Security RSS",
|
||||
"source_kind": "rss-feed",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.017,
|
||||
"kind": "rss-feed",
|
||||
"items_seen": 3
|
||||
},
|
||||
@@ -123,7 +123,7 @@
|
||||
"system_id": "discourse",
|
||||
"source_name": "OSV Discourse",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.017,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -131,7 +131,7 @@
|
||||
"system_id": "django",
|
||||
"source_name": "Django Security Releases Archive",
|
||||
"source_kind": "vendor-index",
|
||||
"elapsed_seconds": 0.068,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "vendor-index",
|
||||
"items_seen": 1276
|
||||
},
|
||||
@@ -139,7 +139,7 @@
|
||||
"system_id": "django",
|
||||
"source_name": "Django Security Weblog",
|
||||
"source_kind": "vendor-index",
|
||||
"elapsed_seconds": 0.043,
|
||||
"elapsed_seconds": 0.045,
|
||||
"kind": "vendor-index",
|
||||
"items_seen": 332
|
||||
},
|
||||
@@ -155,7 +155,7 @@
|
||||
"system_id": "drupal",
|
||||
"source_name": "Drupal Security Advisories RSS",
|
||||
"source_kind": "rss-feed",
|
||||
"elapsed_seconds": 0.038,
|
||||
"elapsed_seconds": 0.025,
|
||||
"kind": "rss-feed",
|
||||
"items_seen": 20
|
||||
},
|
||||
@@ -163,7 +163,7 @@
|
||||
"system_id": "drupal",
|
||||
"source_name": "OSV Drupal",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.038,
|
||||
"elapsed_seconds": 0.024,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -171,7 +171,7 @@
|
||||
"system_id": "echo",
|
||||
"source_name": "OSV Echo",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.039,
|
||||
"elapsed_seconds": 0.064,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -179,7 +179,7 @@
|
||||
"system_id": "esbuild",
|
||||
"source_name": "OSV esbuild",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.044,
|
||||
"elapsed_seconds": 0.045,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -187,7 +187,7 @@
|
||||
"system_id": "express",
|
||||
"source_name": "OSV Express",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.013,
|
||||
"elapsed_seconds": 0.047,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -195,7 +195,7 @@
|
||||
"system_id": "fastify",
|
||||
"source_name": "OSV Fastify",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.005,
|
||||
"elapsed_seconds": 0.02,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -203,7 +203,7 @@
|
||||
"system_id": "flask",
|
||||
"source_name": "OSV Flask",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.017,
|
||||
"elapsed_seconds": 0.064,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -211,7 +211,7 @@
|
||||
"system_id": "ghost",
|
||||
"source_name": "Ghost GitHub Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.038,
|
||||
"elapsed_seconds": 0.024,
|
||||
"kind": "html-links",
|
||||
"items_seen": 119
|
||||
},
|
||||
@@ -219,7 +219,7 @@
|
||||
"system_id": "ghost",
|
||||
"source_name": "OSV Ghost",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.038,
|
||||
"elapsed_seconds": 0.023,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -227,7 +227,7 @@
|
||||
"system_id": "gin",
|
||||
"source_name": "OSV Gin",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.024,
|
||||
"elapsed_seconds": 0.07,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -235,7 +235,7 @@
|
||||
"system_id": "gitea",
|
||||
"source_name": "OSV Gitea",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.074,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -243,7 +243,7 @@
|
||||
"system_id": "gitlab-ce",
|
||||
"source_name": "GitLab Advisory Database",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.096,
|
||||
"elapsed_seconds": 0.07,
|
||||
"kind": "html-links",
|
||||
"items_seen": 5
|
||||
},
|
||||
@@ -251,7 +251,7 @@
|
||||
"system_id": "gitlab-ce",
|
||||
"source_name": "GitLab Security Releases Atom",
|
||||
"source_kind": "atom-feed",
|
||||
"elapsed_seconds": 0.097,
|
||||
"elapsed_seconds": 0.099,
|
||||
"kind": "atom-feed",
|
||||
"items_seen": 186
|
||||
},
|
||||
@@ -259,7 +259,7 @@
|
||||
"system_id": "grafana",
|
||||
"source_name": "CISA KEV Grafana",
|
||||
"source_kind": "kev-json",
|
||||
"elapsed_seconds": 0.039,
|
||||
"elapsed_seconds": 0.064,
|
||||
"kind": "kev-json",
|
||||
"items_seen": 1546
|
||||
},
|
||||
@@ -267,7 +267,7 @@
|
||||
"system_id": "grafana",
|
||||
"source_name": "Grafana Security Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.065,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "html-links",
|
||||
"items_seen": 159
|
||||
},
|
||||
@@ -275,7 +275,7 @@
|
||||
"system_id": "hapi",
|
||||
"source_name": "OSV Hapi",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.009,
|
||||
"elapsed_seconds": 0.02,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -283,7 +283,7 @@
|
||||
"system_id": "haproxy",
|
||||
"source_name": "HAProxy Blog Feed",
|
||||
"source_kind": "rss-feed",
|
||||
"elapsed_seconds": 0.064,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "rss-feed",
|
||||
"items_seen": 10
|
||||
},
|
||||
@@ -291,7 +291,7 @@
|
||||
"system_id": "jenkins",
|
||||
"source_name": "Jenkins Security Advisories RSS",
|
||||
"source_kind": "rss-feed",
|
||||
"elapsed_seconds": 0.074,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "rss-feed",
|
||||
"items_seen": 96
|
||||
},
|
||||
@@ -299,7 +299,7 @@
|
||||
"system_id": "joomla",
|
||||
"source_name": "Joomla Security Centre",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.038,
|
||||
"elapsed_seconds": 0.024,
|
||||
"kind": "html-links",
|
||||
"items_seen": 139
|
||||
},
|
||||
@@ -307,7 +307,7 @@
|
||||
"system_id": "joomla",
|
||||
"source_name": "OSV Joomla",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.038,
|
||||
"elapsed_seconds": 0.024,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -315,7 +315,7 @@
|
||||
"system_id": "kibana",
|
||||
"source_name": "Elastic Security Announcements RSS",
|
||||
"source_kind": "rss-feed",
|
||||
"elapsed_seconds": 0.074,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "rss-feed",
|
||||
"items_seen": 25
|
||||
},
|
||||
@@ -331,7 +331,7 @@
|
||||
"system_id": "laravel",
|
||||
"source_name": "OSV Laravel",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.008,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -339,7 +339,7 @@
|
||||
"system_id": "magento-open-source",
|
||||
"source_name": "Magento GitHub Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.017,
|
||||
"kind": "html-links",
|
||||
"items_seen": 99
|
||||
},
|
||||
@@ -347,7 +347,7 @@
|
||||
"system_id": "magento-open-source",
|
||||
"source_name": "OSV Magento Open Source",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.017,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -355,7 +355,7 @@
|
||||
"system_id": "magento-open-source",
|
||||
"source_name": "Sansec Research",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.016,
|
||||
"kind": "html-links",
|
||||
"items_seen": 134
|
||||
},
|
||||
@@ -363,7 +363,7 @@
|
||||
"system_id": "mattermost",
|
||||
"source_name": "Mattermost Security Updates JSON",
|
||||
"source_kind": "json-feed",
|
||||
"elapsed_seconds": 0.074,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "json-feed",
|
||||
"items_seen": 594
|
||||
},
|
||||
@@ -371,7 +371,7 @@
|
||||
"system_id": "mattermost",
|
||||
"source_name": "OSV Mattermost",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.096,
|
||||
"elapsed_seconds": 0.099,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -379,7 +379,7 @@
|
||||
"system_id": "mediawiki",
|
||||
"source_name": "MediaWiki Announce RSS",
|
||||
"source_kind": "rss-feed",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.02,
|
||||
"kind": "rss-feed",
|
||||
"items_seen": 30
|
||||
},
|
||||
@@ -387,7 +387,7 @@
|
||||
"system_id": "mediawiki",
|
||||
"source_name": "OSV MediaWiki",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.02,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -395,7 +395,7 @@
|
||||
"system_id": "medusa",
|
||||
"source_name": "OSV Medusa",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.015,
|
||||
"elapsed_seconds": 0.021,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -403,7 +403,7 @@
|
||||
"system_id": "moodle",
|
||||
"source_name": "OSV Moodle",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.02,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -411,7 +411,7 @@
|
||||
"system_id": "nestjs",
|
||||
"source_name": "OSV NestJS",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.005,
|
||||
"elapsed_seconds": 0.021,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -419,7 +419,7 @@
|
||||
"system_id": "nextjs",
|
||||
"source_name": "OSV Next.js",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.015,
|
||||
"elapsed_seconds": 0.009,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -427,7 +427,7 @@
|
||||
"system_id": "nginx",
|
||||
"source_name": "CISA KEV NGINX",
|
||||
"source_kind": "kev-json",
|
||||
"elapsed_seconds": 0.064,
|
||||
"elapsed_seconds": 0.044,
|
||||
"kind": "kev-json",
|
||||
"items_seen": 1546
|
||||
},
|
||||
@@ -435,7 +435,7 @@
|
||||
"system_id": "nginx",
|
||||
"source_name": "NGINX Security Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.023,
|
||||
"elapsed_seconds": 0.07,
|
||||
"kind": "html-links",
|
||||
"items_seen": 138
|
||||
},
|
||||
@@ -443,7 +443,7 @@
|
||||
"system_id": "nodejs",
|
||||
"source_name": "CISA KEV Node.js",
|
||||
"source_kind": "kev-json",
|
||||
"elapsed_seconds": 0.028,
|
||||
"elapsed_seconds": 0.02,
|
||||
"kind": "kev-json",
|
||||
"items_seen": 1546
|
||||
},
|
||||
@@ -451,7 +451,7 @@
|
||||
"system_id": "nodejs",
|
||||
"source_name": "Node.js Security Releases",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.005,
|
||||
"elapsed_seconds": 0.045,
|
||||
"kind": "html-links",
|
||||
"items_seen": 74
|
||||
},
|
||||
@@ -459,7 +459,7 @@
|
||||
"system_id": "nuxt",
|
||||
"source_name": "OSV Nuxt",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.013,
|
||||
"elapsed_seconds": 0.021,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -467,7 +467,7 @@
|
||||
"system_id": "opencart",
|
||||
"source_name": "OSV OpenCart",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.015,
|
||||
"elapsed_seconds": 0.005,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -475,7 +475,7 @@
|
||||
"system_id": "opencart",
|
||||
"source_name": "OpenCart Releases",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.015,
|
||||
"elapsed_seconds": 0.013,
|
||||
"kind": "html-links",
|
||||
"items_seen": 1500
|
||||
},
|
||||
@@ -483,7 +483,7 @@
|
||||
"system_id": "openmage",
|
||||
"source_name": "OSV OpenMage",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.031,
|
||||
"elapsed_seconds": 0.016,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -491,7 +491,7 @@
|
||||
"system_id": "openmage",
|
||||
"source_name": "OpenMage GitHub Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.032,
|
||||
"elapsed_seconds": 0.024,
|
||||
"kind": "html-links",
|
||||
"items_seen": 125
|
||||
},
|
||||
@@ -507,7 +507,7 @@
|
||||
"system_id": "phpmyadmin",
|
||||
"source_name": "phpMyAdmin Security Page",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.064,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "html-links",
|
||||
"items_seen": 262
|
||||
},
|
||||
@@ -515,7 +515,7 @@
|
||||
"system_id": "prestashop",
|
||||
"source_name": "Friends Of Presta Security",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.019,
|
||||
"elapsed_seconds": 0.016,
|
||||
"kind": "html-links",
|
||||
"items_seen": 38
|
||||
},
|
||||
@@ -523,7 +523,7 @@
|
||||
"system_id": "prestashop",
|
||||
"source_name": "GitHub PrestaShop Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.019,
|
||||
"elapsed_seconds": 0.016,
|
||||
"kind": "html-links",
|
||||
"items_seen": 127
|
||||
},
|
||||
@@ -531,7 +531,7 @@
|
||||
"system_id": "prestashop",
|
||||
"source_name": "OSV PrestaShop",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.019,
|
||||
"elapsed_seconds": 0.016,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -539,7 +539,7 @@
|
||||
"system_id": "prestashop",
|
||||
"source_name": "PrestaShop Security Page",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.019,
|
||||
"elapsed_seconds": 0.017,
|
||||
"kind": "html-links",
|
||||
"items_seen": 60
|
||||
},
|
||||
@@ -547,7 +547,7 @@
|
||||
"system_id": "rails",
|
||||
"source_name": "OSV Rails",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.039,
|
||||
"elapsed_seconds": 0.064,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -555,7 +555,7 @@
|
||||
"system_id": "react",
|
||||
"source_name": "OSV React",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.015,
|
||||
"elapsed_seconds": 0.048,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -563,7 +563,7 @@
|
||||
"system_id": "redmine",
|
||||
"source_name": "OSV Redmine",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.074,
|
||||
"elapsed_seconds": 0.099,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -571,7 +571,7 @@
|
||||
"system_id": "redmine",
|
||||
"source_name": "Redmine Security Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.074,
|
||||
"elapsed_seconds": 0.085,
|
||||
"kind": "html-links",
|
||||
"items_seen": 371
|
||||
},
|
||||
@@ -579,7 +579,7 @@
|
||||
"system_id": "saleor",
|
||||
"source_name": "GitHub Saleor Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.015,
|
||||
"elapsed_seconds": 0.013,
|
||||
"kind": "html-links",
|
||||
"items_seen": 120
|
||||
},
|
||||
@@ -587,7 +587,7 @@
|
||||
"system_id": "saleor",
|
||||
"source_name": "OSV Saleor",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.015,
|
||||
"elapsed_seconds": 0.013,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -595,7 +595,7 @@
|
||||
"system_id": "shopware",
|
||||
"source_name": "OSV Shopware",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.015,
|
||||
"elapsed_seconds": 0.013,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -603,7 +603,7 @@
|
||||
"system_id": "shopware",
|
||||
"source_name": "Shopware Security Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.019,
|
||||
"elapsed_seconds": 0.029,
|
||||
"kind": "html-links",
|
||||
"items_seen": 129
|
||||
},
|
||||
@@ -611,7 +611,7 @@
|
||||
"system_id": "spring-boot",
|
||||
"source_name": "OSV Spring Boot",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.01,
|
||||
"elapsed_seconds": 0.065,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -619,7 +619,7 @@
|
||||
"system_id": "spring-boot",
|
||||
"source_name": "Spring Security Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.009,
|
||||
"elapsed_seconds": 0.045,
|
||||
"kind": "html-links",
|
||||
"items_seen": 118
|
||||
},
|
||||
@@ -627,7 +627,7 @@
|
||||
"system_id": "spring-framework",
|
||||
"source_name": "OSV Spring Framework",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.009,
|
||||
"elapsed_seconds": 0.045,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -635,7 +635,7 @@
|
||||
"system_id": "spring-framework",
|
||||
"source_name": "Spring Security Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.021,
|
||||
"elapsed_seconds": 0.046,
|
||||
"kind": "html-links",
|
||||
"items_seen": 118
|
||||
},
|
||||
@@ -643,7 +643,7 @@
|
||||
"system_id": "spring-security",
|
||||
"source_name": "OSV Spring Security",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.009,
|
||||
"elapsed_seconds": 0.064,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -651,7 +651,7 @@
|
||||
"system_id": "spring-security",
|
||||
"source_name": "Spring Security Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.01,
|
||||
"elapsed_seconds": 0.02,
|
||||
"kind": "html-links",
|
||||
"items_seen": 118
|
||||
},
|
||||
@@ -659,7 +659,7 @@
|
||||
"system_id": "strapi",
|
||||
"source_name": "OSV Strapi",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.037,
|
||||
"elapsed_seconds": 0.023,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -667,7 +667,7 @@
|
||||
"system_id": "strapi",
|
||||
"source_name": "Strapi GitHub Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.037,
|
||||
"elapsed_seconds": 0.023,
|
||||
"kind": "html-links",
|
||||
"items_seen": 124
|
||||
},
|
||||
@@ -675,7 +675,7 @@
|
||||
"system_id": "sveltekit",
|
||||
"source_name": "OSV SvelteKit",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.013,
|
||||
"elapsed_seconds": 0.02,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -683,7 +683,7 @@
|
||||
"system_id": "symfony",
|
||||
"source_name": "OSV Symfony",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.043,
|
||||
"elapsed_seconds": 0.046,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -691,7 +691,7 @@
|
||||
"system_id": "traefik",
|
||||
"source_name": "OSV Traefik",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.074,
|
||||
"elapsed_seconds": 0.07,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -699,7 +699,7 @@
|
||||
"system_id": "undici",
|
||||
"source_name": "OSV Undici",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.009,
|
||||
"elapsed_seconds": 0.064,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -707,7 +707,7 @@
|
||||
"system_id": "vite",
|
||||
"source_name": "OSV Vite",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.013,
|
||||
"elapsed_seconds": 0.022,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -715,7 +715,7 @@
|
||||
"system_id": "vue",
|
||||
"source_name": "OSV Vue",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.015,
|
||||
"elapsed_seconds": 0.01,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -723,7 +723,7 @@
|
||||
"system_id": "webpack",
|
||||
"source_name": "OSV webpack",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.009,
|
||||
"elapsed_seconds": 0.045,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -731,7 +731,7 @@
|
||||
"system_id": "werkzeug",
|
||||
"source_name": "OSV Werkzeug",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.006,
|
||||
"elapsed_seconds": 0.07,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -739,7 +739,7 @@
|
||||
"system_id": "woocommerce",
|
||||
"source_name": "GitHub WooCommerce Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.031,
|
||||
"elapsed_seconds": 0.016,
|
||||
"kind": "html-links",
|
||||
"items_seen": 107
|
||||
},
|
||||
@@ -747,7 +747,7 @@
|
||||
"system_id": "woocommerce",
|
||||
"source_name": "OSV WooCommerce",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.031,
|
||||
"elapsed_seconds": 0.008,
|
||||
"kind": "osv-batch",
|
||||
"items_seen": 1
|
||||
},
|
||||
@@ -755,7 +755,7 @@
|
||||
"system_id": "woocommerce",
|
||||
"source_name": "Patchstack Database",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.019,
|
||||
"elapsed_seconds": 0.008,
|
||||
"kind": "html-links",
|
||||
"items_seen": 193
|
||||
},
|
||||
@@ -763,7 +763,7 @@
|
||||
"system_id": "woocommerce",
|
||||
"source_name": "Woo Developer Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.031,
|
||||
"elapsed_seconds": 0.016,
|
||||
"kind": "html-links",
|
||||
"items_seen": 121
|
||||
},
|
||||
@@ -771,7 +771,7 @@
|
||||
"system_id": "woocommerce",
|
||||
"source_name": "Wordfence Vulnerability Database",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.019,
|
||||
"elapsed_seconds": 0.008,
|
||||
"kind": "html-links",
|
||||
"items_seen": 0
|
||||
},
|
||||
@@ -779,7 +779,7 @@
|
||||
"system_id": "wordpress",
|
||||
"source_name": "Patchstack Database",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.041,
|
||||
"elapsed_seconds": 0.025,
|
||||
"kind": "html-links",
|
||||
"items_seen": 193
|
||||
},
|
||||
@@ -787,7 +787,7 @@
|
||||
"system_id": "wordpress",
|
||||
"source_name": "PortSwigger Research",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.038,
|
||||
"elapsed_seconds": 0.025,
|
||||
"kind": "html-links",
|
||||
"items_seen": 99
|
||||
},
|
||||
@@ -795,7 +795,7 @@
|
||||
"system_id": "wordpress",
|
||||
"source_name": "WPScan Vulnerability Database",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.041,
|
||||
"elapsed_seconds": 0.025,
|
||||
"kind": "html-links",
|
||||
"items_seen": 74
|
||||
},
|
||||
@@ -803,7 +803,7 @@
|
||||
"system_id": "wordpress",
|
||||
"source_name": "WordPress Security News RSS",
|
||||
"source_kind": "rss-feed",
|
||||
"elapsed_seconds": 0.041,
|
||||
"elapsed_seconds": 0.025,
|
||||
"kind": "rss-feed",
|
||||
"items_seen": 10
|
||||
},
|
||||
@@ -811,81 +811,81 @@
|
||||
"system_id": "wordpress",
|
||||
"source_name": "Wordfence Vulnerability Database",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.041,
|
||||
"elapsed_seconds": 0.025,
|
||||
"kind": "html-links",
|
||||
"items_seen": 0
|
||||
}
|
||||
],
|
||||
"failures": [],
|
||||
"slow_sources": [
|
||||
{
|
||||
"system_id": "gitlab-ce",
|
||||
"source_name": "GitLab Security Releases Atom",
|
||||
"source_kind": "atom-feed",
|
||||
"elapsed_seconds": 0.097,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "adminer",
|
||||
"source_name": "OSV Adminer",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.096,
|
||||
"elapsed_seconds": 0.099,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "gitlab-ce",
|
||||
"source_name": "GitLab Advisory Database",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.096,
|
||||
"source_name": "GitLab Security Releases Atom",
|
||||
"source_kind": "atom-feed",
|
||||
"elapsed_seconds": 0.099,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "mattermost",
|
||||
"source_name": "OSV Mattermost",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.096,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "apache-httpd",
|
||||
"source_name": "CISA KEV Apache HTTPD",
|
||||
"source_kind": "kev-json",
|
||||
"elapsed_seconds": 0.074,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "gitea",
|
||||
"source_name": "OSV Gitea",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.074,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "jenkins",
|
||||
"source_name": "Jenkins Security Advisories RSS",
|
||||
"source_kind": "rss-feed",
|
||||
"elapsed_seconds": 0.074,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "kibana",
|
||||
"source_name": "Elastic Security Announcements RSS",
|
||||
"source_kind": "rss-feed",
|
||||
"elapsed_seconds": 0.074,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "mattermost",
|
||||
"source_name": "Mattermost Security Updates JSON",
|
||||
"source_kind": "json-feed",
|
||||
"elapsed_seconds": 0.074,
|
||||
"elapsed_seconds": 0.099,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "redmine",
|
||||
"source_name": "OSV Redmine",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.074,
|
||||
"elapsed_seconds": 0.099,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "apache-httpd",
|
||||
"source_name": "Apache HTTPD Security",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.085,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "aspnet-core",
|
||||
"source_name": "OSV ASP.NET Core",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.085,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "caddy",
|
||||
"source_name": "OSV Caddy",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.085,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "django",
|
||||
"source_name": "Django Security Releases Archive",
|
||||
"source_kind": "vendor-index",
|
||||
"elapsed_seconds": 0.085,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "gitea",
|
||||
"source_name": "OSV Gitea",
|
||||
"source_kind": "osv-batch",
|
||||
"elapsed_seconds": 0.085,
|
||||
"status": "ok"
|
||||
},
|
||||
{
|
||||
"system_id": "grafana",
|
||||
"source_name": "Grafana Security Advisories",
|
||||
"source_kind": "html-links",
|
||||
"elapsed_seconds": 0.085,
|
||||
"status": "ok"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
<h1>当前架构库镜像</h1>
|
||||
<div class="meta">工作台内置镜像页:当前架构库结构化数据镜像。</div>
|
||||
<pre>{
|
||||
"generated_at": "2026-03-19T23:44:56+00:00",
|
||||
"generated_at": "2026-03-20T00:56:32+00:00",
|
||||
"title": "当前架构库",
|
||||
"summary": "工作台、控制面、数据层、授权边界与系统覆盖的当前真值视图。",
|
||||
"sections": [
|
||||
@@ -113,6 +113,14 @@
|
||||
"label": "近两年全量系统",
|
||||
"value": "42"
|
||||
},
|
||||
{
|
||||
"label": "已编目实体",
|
||||
"value": "97"
|
||||
},
|
||||
{
|
||||
"label": "发现 backlog",
|
||||
"value": "17"
|
||||
},
|
||||
{
|
||||
"label": "当前运行",
|
||||
"value": "140"
|
||||
@@ -137,7 +145,7 @@
|
||||
},
|
||||
{
|
||||
"label": "生成时间",
|
||||
"value": "2026-03-19T23:44:56+00:00"
|
||||
"value": "2026-03-20T00:56:32+00:00"
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
@@ -267,6 +275,10 @@
|
||||
"label": "系统 Registry",
|
||||
"value": "08-threat-intel/registry/systems/*.json"
|
||||
},
|
||||
{
|
||||
"label": "实体 Registry",
|
||||
"value": "08-threat-intel/registry/entities/*.json"
|
||||
},
|
||||
{
|
||||
"label": "运行 Registry",
|
||||
"value": "08-threat-intel/registry/runs/*.json"
|
||||
@@ -366,6 +378,16 @@
|
||||
"href": "/docs/retired-sources.html",
|
||||
"description": "退役源、退役原因与 replacement map。"
|
||||
},
|
||||
{
|
||||
"label": "entity catalog report",
|
||||
"href": "/docs/entity-catalog-report.html",
|
||||
"description": "分层实体覆盖、history-full 完整度与 workflow 指标。"
|
||||
},
|
||||
{
|
||||
"label": "entity discovery backlog",
|
||||
"href": "/docs/entity-discovery-backlog.html",
|
||||
"description": "待编目 repo / 插件 / 包 backlog 与等待原因。"
|
||||
},
|
||||
{
|
||||
"label": "repro-map 真值",
|
||||
"href": "/docs/repro-map.html",
|
||||
@@ -411,6 +433,21 @@
|
||||
"href": "/data/monitor-summary.json",
|
||||
"description": "每日监控摘要、open alerts 与最近全绿时间。"
|
||||
},
|
||||
{
|
||||
"label": "entity-completeness.json",
|
||||
"href": "/data/entity-completeness.json",
|
||||
"description": "实体级 catalog 完整度、版本映射与 workflow 覆盖。"
|
||||
},
|
||||
{
|
||||
"label": "entity-discovery-backlog.json",
|
||||
"href": "/data/entity-discovery-backlog.json",
|
||||
"description": "发现但尚未正式编目的 repo / 插件 / 包 backlog。"
|
||||
},
|
||||
{
|
||||
"label": "entity-queues.json",
|
||||
"href": "/data/entity-queues.json",
|
||||
"description": "discovery/history/latest/workflow 四类队列摘要。"
|
||||
},
|
||||
{
|
||||
"label": "runs.json",
|
||||
"href": "/runs.json",
|
||||
@@ -451,6 +488,18 @@
|
||||
"label": "运行归档根目录",
|
||||
"value": "06-case-studies/generated-runs/<run-id>/"
|
||||
},
|
||||
{
|
||||
"label": "实体完整度",
|
||||
"value": "/data/entity-completeness.json"
|
||||
},
|
||||
{
|
||||
"label": "发现 backlog",
|
||||
"value": "/data/entity-discovery-backlog.json"
|
||||
},
|
||||
{
|
||||
"label": "实体队列",
|
||||
"value": "/data/entity-queues.json"
|
||||
},
|
||||
{
|
||||
"label": "默认入口",
|
||||
"value": "/index.html"
|
||||
|
||||
@@ -0,0 +1,171 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>分层实体覆盖报告</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg: #08111f;
|
||||
--panel: rgba(9, 18, 32, 0.9);
|
||||
--border: rgba(137, 171, 214, 0.2);
|
||||
--text: #f7fafc;
|
||||
--muted: #9fb3ca;
|
||||
--accent: #5eead4;
|
||||
}
|
||||
* { box-sizing: border-box; }
|
||||
body {
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
|
||||
color: var(--text);
|
||||
background:
|
||||
radial-gradient(circle at top left, rgba(94, 234, 212, 0.12), transparent 26%),
|
||||
linear-gradient(160deg, #050c16 0%, #091526 50%, #10233d 100%);
|
||||
}
|
||||
main {
|
||||
max-width: 1080px;
|
||||
margin: 0 auto;
|
||||
padding: 32px 20px 40px;
|
||||
}
|
||||
.panel {
|
||||
background: var(--panel);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 20px;
|
||||
padding: 24px;
|
||||
box-shadow: 0 24px 80px rgba(1, 7, 20, 0.45);
|
||||
}
|
||||
.actions {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
.chip {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
border-radius: 999px;
|
||||
border: 1px solid var(--border);
|
||||
padding: 10px 14px;
|
||||
color: var(--text);
|
||||
background: rgba(255,255,255,0.05);
|
||||
text-decoration: none;
|
||||
}
|
||||
.chip:hover { border-color: rgba(94, 234, 212, 0.42); }
|
||||
h1 {
|
||||
margin: 0 0 12px;
|
||||
font-family: "IBM Plex Serif", Georgia, serif;
|
||||
font-size: clamp(1.8rem, 4vw, 3rem);
|
||||
line-height: 1.08;
|
||||
}
|
||||
.meta {
|
||||
color: var(--muted);
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
pre {
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
overflow: auto;
|
||||
border-radius: 16px;
|
||||
border: 1px solid rgba(137, 171, 214, 0.12);
|
||||
background: rgba(2, 8, 22, 0.84);
|
||||
color: #d6e5f5;
|
||||
font-family: "IBM Plex Mono", "SFMono-Regular", monospace;
|
||||
font-size: 0.92rem;
|
||||
line-height: 1.6;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div class="panel">
|
||||
<div class="actions">
|
||||
<a class="chip" href="/overview/index.html">返回工作台</a>
|
||||
</div>
|
||||
<h1>分层实体覆盖报告</h1>
|
||||
<div class="meta">工作台内置镜像页:分层实体覆盖、history-full 完整度和 workflow 统计。</div>
|
||||
<pre># 分层实体覆盖与完整度报告
|
||||
|
||||
- 生成时间: `2026-03-20T00:56:31+00:00`
|
||||
- 已编目实体: `97`
|
||||
- 待编目 backlog: `17`
|
||||
- history-full 已完成: `40`
|
||||
- latest green: `97`
|
||||
- workflow 完整: `97`
|
||||
- 版本映射完整: `49`
|
||||
- 官方源覆盖: `97`
|
||||
- 插件 history-full 已完成: `4`
|
||||
|
||||
## 系统分层摘要
|
||||
|
||||
| 系统 | cataloged entities | candidate backlog | workflow complete | version mapped | official covered | plugins |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||
| adminer | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| adobe-commerce | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| angular | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| apache-httpd | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| apache-tomcat | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| aspnet-core | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| astro | 3 | 0 | 3 | 3 | 3 | 1 |
|
||||
| caddy | 3 | 0 | 3 | 2 | 3 | 1 |
|
||||
| directus | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| discourse | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| django | 2 | 0 | 2 | 1 | 2 | 0 |
|
||||
| drupal | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| echo | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| esbuild | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| express | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| fastify | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| flask | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| ghost | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| gin | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| gitea | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| gitlab-ce | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| grafana | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| hapi | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| haproxy | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| jenkins | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| joomla | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| kibana | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| koa | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| laravel | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| magento-open-source | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| mattermost | 5 | 0 | 5 | 5 | 5 | 1 |
|
||||
| mediawiki | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| medusa | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| moodle | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| nestjs | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| nextjs | 2 | 1 | 2 | 1 | 2 | 0 |
|
||||
| nginx | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| nodejs | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| nuxt | 2 | 1 | 2 | 1 | 2 | 0 |
|
||||
| opencart | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| openmage | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| phpmyadmin | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| prestashop | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| rails | 2 | 0 | 2 | 1 | 2 | 0 |
|
||||
| react | 3 | 1 | 3 | 2 | 3 | 0 |
|
||||
| redmine | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| saleor | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| shopware | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| spring-boot | 2 | 0 | 2 | 1 | 2 | 0 |
|
||||
| spring-framework | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| spring-security | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| strapi | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| sveltekit | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| symfony | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| traefik | 2 | 0 | 2 | 1 | 2 | 0 |
|
||||
| undici | 3 | 0 | 3 | 2 | 3 | 1 |
|
||||
| vite | 5 | 1 | 5 | 4 | 5 | 3 |
|
||||
| vue | 2 | 1 | 2 | 1 | 2 | 0 |
|
||||
| webpack | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
| werkzeug | 2 | 0 | 2 | 2 | 2 | 0 |
|
||||
| woocommerce | 1 | 1 | 1 | 0 | 1 | 0 |
|
||||
| wordpress | 1 | 0 | 1 | 0 | 1 | 0 |
|
||||
</pre>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,117 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>分层实体发现 Backlog</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg: #08111f;
|
||||
--panel: rgba(9, 18, 32, 0.9);
|
||||
--border: rgba(137, 171, 214, 0.2);
|
||||
--text: #f7fafc;
|
||||
--muted: #9fb3ca;
|
||||
--accent: #5eead4;
|
||||
}
|
||||
* { box-sizing: border-box; }
|
||||
body {
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
|
||||
color: var(--text);
|
||||
background:
|
||||
radial-gradient(circle at top left, rgba(94, 234, 212, 0.12), transparent 26%),
|
||||
linear-gradient(160deg, #050c16 0%, #091526 50%, #10233d 100%);
|
||||
}
|
||||
main {
|
||||
max-width: 1080px;
|
||||
margin: 0 auto;
|
||||
padding: 32px 20px 40px;
|
||||
}
|
||||
.panel {
|
||||
background: var(--panel);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 20px;
|
||||
padding: 24px;
|
||||
box-shadow: 0 24px 80px rgba(1, 7, 20, 0.45);
|
||||
}
|
||||
.actions {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
.chip {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
border-radius: 999px;
|
||||
border: 1px solid var(--border);
|
||||
padding: 10px 14px;
|
||||
color: var(--text);
|
||||
background: rgba(255,255,255,0.05);
|
||||
text-decoration: none;
|
||||
}
|
||||
.chip:hover { border-color: rgba(94, 234, 212, 0.42); }
|
||||
h1 {
|
||||
margin: 0 0 12px;
|
||||
font-family: "IBM Plex Serif", Georgia, serif;
|
||||
font-size: clamp(1.8rem, 4vw, 3rem);
|
||||
line-height: 1.08;
|
||||
}
|
||||
.meta {
|
||||
color: var(--muted);
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
pre {
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
overflow: auto;
|
||||
border-radius: 16px;
|
||||
border: 1px solid rgba(137, 171, 214, 0.12);
|
||||
background: rgba(2, 8, 22, 0.84);
|
||||
color: #d6e5f5;
|
||||
font-family: "IBM Plex Mono", "SFMono-Regular", monospace;
|
||||
font-size: 0.92rem;
|
||||
line-height: 1.6;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div class="panel">
|
||||
<div class="actions">
|
||||
<a class="chip" href="/overview/index.html">返回工作台</a>
|
||||
</div>
|
||||
<h1>分层实体发现 Backlog</h1>
|
||||
<div class="meta">工作台内置镜像页:待编目 repo / 插件 / 包 backlog 与等待原因。</div>
|
||||
<pre># 分层实体发现 Backlog
|
||||
|
||||
- 生成时间: `2026-03-20T00:56:31+00:00`
|
||||
- 待编目数量: `17`
|
||||
|
||||
| candidate_id | root_system | entity_type | risk | reason | waiting_for | source |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| directus--repo-candidate--https-github-com-directus-directus | directus | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/directus/directus/security/advisories |
|
||||
| ghost--repo-candidate--https-github-com-tryghost-ghost | ghost | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/TryGhost/Ghost/security/advisories |
|
||||
| gitea--repo-candidate--https-github-com-go-gitea-gitea | gitea | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/go-gitea/gitea/security/advisories |
|
||||
| magento-open-source--repo-candidate--https-github-com-magento-magento2 | magento-open-source | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/magento/magento2/security/advisories |
|
||||
| medusa--repo-candidate--https-github-com-medusajs-medusa | medusa | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/medusajs/medusa/security/advisories |
|
||||
| nextjs--repo-candidate--https-github-com-vercel-next-js | nextjs | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/vercel/next.js/security/advisories |
|
||||
| nuxt--repo-candidate--https-github-com-nuxt-nuxt | nuxt | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/nuxt/nuxt/security/advisories |
|
||||
| opencart--repo-candidate--https-github-com-opencart-opencart | opencart | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/opencart/opencart/releases |
|
||||
| openmage--repo-candidate--https-github-com-openmage-magento-lts | openmage | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/OpenMage/magento-lts/security/advisories |
|
||||
| prestashop--repo-candidate--https-github-com-prestashop-prestashop | prestashop | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/PrestaShop/PrestaShop/security/advisories |
|
||||
| react--repo-candidate--https-github-com-facebook-react | react | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/facebook/react/security/advisories |
|
||||
| saleor--repo-candidate--https-github-com-saleor-saleor | saleor | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/saleor/saleor/security/advisories |
|
||||
| shopware--repo-candidate--https-github-com-shopware-shopware | shopware | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/shopware/shopware/security/advisories |
|
||||
| strapi--repo-candidate--https-github-com-strapi-strapi | strapi | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/strapi/strapi/security/advisories |
|
||||
| vite--repo-candidate--https-github-com-vitejs-vite | vite | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/vitejs/vite/security/advisories |
|
||||
| vue--repo-candidate--https-github-com-vuejs-core | vue | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/vuejs/core/security |
|
||||
| woocommerce--repo-candidate--https-github-com-woocommerce-woocommerce | woocommerce | repo | medium | source catalog exposed a repo-like URL that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/package 实体并补齐历史漏洞 | https://github.com/woocommerce/woocommerce/security/advisories |
|
||||
</pre>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -88,7 +88,7 @@
|
||||
<div class="meta">工作台内置镜像页:active/retired source、replacement map 与覆盖摘要。</div>
|
||||
<pre># Source Catalog Audit
|
||||
|
||||
- generated_at: `2026-03-19T23:44:51+00:00`
|
||||
- generated_at: `2026-03-20T00:56:25+00:00`
|
||||
- systems: `62`
|
||||
- sources: `179`
|
||||
- active_sources: `101`
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
<div class="meta">工作台内置镜像页:89 条 advisory 最新完整度、family 矩阵与 ingest 健康度。</div>
|
||||
<pre># 全库 Advisory 完整度报告
|
||||
|
||||
- 生成时间: `2026-03-19T23:44:56+00:00`
|
||||
- 生成时间: `2026-03-20T00:56:32+00:00`
|
||||
- 最新 advisory 完整度: `89/89` `verified-real`
|
||||
- 合成验证数量: `0`
|
||||
- 阻塞数量: `0`
|
||||
@@ -96,7 +96,9 @@
|
||||
- 完整度百分比: `100.0%`
|
||||
- active source 全绿: `101/101`
|
||||
- source open alerts: `0`
|
||||
- 最近一次 source 全绿: `2026-03-19T23:44:51+00:00`
|
||||
- 最近一次 source 全绿: `2026-03-20T00:56:25+00:00`
|
||||
- 已编目实体: `97`
|
||||
- 待编目 backlog: `17`
|
||||
|
||||
## 系统覆盖矩阵
|
||||
|
||||
@@ -107,6 +109,15 @@
|
||||
| undici | 14 | 14 | 0 | 0 | 0 | ssrf(14/14) |
|
||||
| vite | 12 | 12 | 0 | 0 | 0 | proxy-boundary(11/11), xss(1/1) |
|
||||
|
||||
## 分层实体完整度
|
||||
|
||||
- history-full 已完成: `40`
|
||||
- latest green: `97`
|
||||
- workflow 完整: `97`
|
||||
- 版本映射完整: `49`
|
||||
- 官方源覆盖: `97`
|
||||
- 插件 history-full 已完成: `4`
|
||||
|
||||
## 历史阻塞项修复纪要
|
||||
|
||||
- Docker daemon unavailable caused provision-compose-environment blocked-artifact.
|
||||
@@ -114,6 +125,7 @@
|
||||
- Baseline and browser steps were skipped when environment readiness was not enforced.
|
||||
- Latest completeness now uses one advisory -> latest run semantics instead of historical run piles.
|
||||
- Source health now counts only status=active sources; retired sources are audited separately with replacement links.
|
||||
- Entity coverage now separates cataloged entities from discovery backlog so infinite internet scope no longer pollutes completion numbers.
|
||||
|
||||
## Ingest / Source 健康度
|
||||
|
||||
|
||||
文件差异内容过多而无法显示
加载差异
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated_at": "2026-03-19T23:44:56+00:00",
|
||||
"generated_at": "2026-03-20T00:56:32+00:00",
|
||||
"advisory_count": 2399,
|
||||
"run_count": 140,
|
||||
"statuses": {
|
||||
@@ -158,7 +158,646 @@
|
||||
"green_source_count": 101,
|
||||
"source_failure_count": 0,
|
||||
"open_alert_count": 0,
|
||||
"last_fully_green_run": "2026-03-19T23:44:51+00:00"
|
||||
"last_fully_green_run": "2026-03-20T00:56:25+00:00"
|
||||
},
|
||||
"entity_coverage": {
|
||||
"generated_at": "2026-03-20T00:56:31+00:00",
|
||||
"cataloged_entity_total": 97,
|
||||
"candidate_entity_total": 17,
|
||||
"history_full_complete_count": 40,
|
||||
"latest_green_count": 97,
|
||||
"workflow_complete_count": 97,
|
||||
"version_mapped_count": 49,
|
||||
"official_source_covered_count": 97,
|
||||
"plugin_history_full_count": 4,
|
||||
"systems": [
|
||||
{
|
||||
"system_id": "adminer",
|
||||
"display_name": "Adminer",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "adobe-commerce",
|
||||
"display_name": "Adobe Commerce",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "angular",
|
||||
"display_name": "Angular",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "apache-httpd",
|
||||
"display_name": "Apache HTTP Server",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "apache-tomcat",
|
||||
"display_name": "Apache Tomcat",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "aspnet-core",
|
||||
"display_name": "ASP.NET Core",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "astro",
|
||||
"display_name": "Astro",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 3,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "caddy",
|
||||
"display_name": "Caddy",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "directus",
|
||||
"display_name": "Directus",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "discourse",
|
||||
"display_name": "Discourse",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "django",
|
||||
"display_name": "Django",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "drupal",
|
||||
"display_name": "Drupal",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "echo",
|
||||
"display_name": "Echo",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "esbuild",
|
||||
"display_name": "esbuild",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "express",
|
||||
"display_name": "Express",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "fastify",
|
||||
"display_name": "Fastify",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "flask",
|
||||
"display_name": "Flask",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "ghost",
|
||||
"display_name": "Ghost",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "gin",
|
||||
"display_name": "Gin",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "gitea",
|
||||
"display_name": "Gitea",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "gitlab-ce",
|
||||
"display_name": "GitLab CE",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "grafana",
|
||||
"display_name": "Grafana",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "hapi",
|
||||
"display_name": "Hapi",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "haproxy",
|
||||
"display_name": "HAProxy",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "jenkins",
|
||||
"display_name": "Jenkins",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "joomla",
|
||||
"display_name": "Joomla",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "kibana",
|
||||
"display_name": "Kibana",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "koa",
|
||||
"display_name": "Koa",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "laravel",
|
||||
"display_name": "Laravel",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "magento-open-source",
|
||||
"display_name": "Magento Open Source",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "mattermost",
|
||||
"display_name": "Mattermost",
|
||||
"cataloged_entity_total": 5,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 5,
|
||||
"version_mapped_count": 5,
|
||||
"official_source_covered_count": 5,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "mediawiki",
|
||||
"display_name": "MediaWiki",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "medusa",
|
||||
"display_name": "Medusa",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "moodle",
|
||||
"display_name": "Moodle",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nestjs",
|
||||
"display_name": "NestJS",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nextjs",
|
||||
"display_name": "Next.js",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nginx",
|
||||
"display_name": "Nginx",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nodejs",
|
||||
"display_name": "Node.js",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "nuxt",
|
||||
"display_name": "Nuxt",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "opencart",
|
||||
"display_name": "OpenCart",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "openmage",
|
||||
"display_name": "OpenMage / Mage-OS",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "phpmyadmin",
|
||||
"display_name": "phpMyAdmin",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "prestashop",
|
||||
"display_name": "PrestaShop",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "rails",
|
||||
"display_name": "Ruby on Rails",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "react",
|
||||
"display_name": "React",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "redmine",
|
||||
"display_name": "Redmine",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "saleor",
|
||||
"display_name": "Saleor",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "shopware",
|
||||
"display_name": "Shopware",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "spring-boot",
|
||||
"display_name": "Spring Boot",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "spring-framework",
|
||||
"display_name": "Spring Framework",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "spring-security",
|
||||
"display_name": "Spring Security",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "strapi",
|
||||
"display_name": "Strapi",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "sveltekit",
|
||||
"display_name": "SvelteKit",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "symfony",
|
||||
"display_name": "Symfony",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "traefik",
|
||||
"display_name": "Traefik",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "undici",
|
||||
"display_name": "Undici",
|
||||
"cataloged_entity_total": 3,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 3,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 3,
|
||||
"plugin_total": 1
|
||||
},
|
||||
{
|
||||
"system_id": "vite",
|
||||
"display_name": "Vite",
|
||||
"cataloged_entity_total": 5,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 5,
|
||||
"version_mapped_count": 4,
|
||||
"official_source_covered_count": 5,
|
||||
"plugin_total": 3
|
||||
},
|
||||
{
|
||||
"system_id": "vue",
|
||||
"display_name": "Vue",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 1,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "webpack",
|
||||
"display_name": "webpack",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "werkzeug",
|
||||
"display_name": "Werkzeug",
|
||||
"cataloged_entity_total": 2,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 2,
|
||||
"version_mapped_count": 2,
|
||||
"official_source_covered_count": 2,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "woocommerce",
|
||||
"display_name": "WooCommerce",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 1,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
},
|
||||
{
|
||||
"system_id": "wordpress",
|
||||
"display_name": "WordPress",
|
||||
"cataloged_entity_total": 1,
|
||||
"candidate_entity_total": 0,
|
||||
"workflow_complete_count": 1,
|
||||
"version_mapped_count": 0,
|
||||
"official_source_covered_count": 1,
|
||||
"plugin_total": 0
|
||||
}
|
||||
],
|
||||
"queues": {
|
||||
"discovery_queue": 17,
|
||||
"history_queue": 15,
|
||||
"latest_queue": 0,
|
||||
"workflow_queue": 2176
|
||||
}
|
||||
},
|
||||
"systems": [
|
||||
{
|
||||
@@ -1970,6 +2609,10 @@
|
||||
"complete": true,
|
||||
"source_failure_count": 0,
|
||||
"active_source_count": 101,
|
||||
"open_alert_count": 0
|
||||
"open_alert_count": 0,
|
||||
"cataloged_entity_total": 97,
|
||||
"candidate_entity_total": 17,
|
||||
"workflow_complete_count": 97,
|
||||
"version_mapped_count": 49
|
||||
}
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户