feat: sync version-driven intel coverage

这个提交包含在:
hao
2026-03-21 18:18:55 -07:00
父节点 2d92ef6bce
当前提交 bfd7d732ae
修改 8778 个文件,包含 354337 行新增4720 行删除

查看文件

@@ -5,10 +5,10 @@
"display_name": "Adminer",
"source_name": "OSV Adminer",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -31,10 +31,10 @@
"display_name": "Adobe Commerce",
"source_name": "Adobe Magento Security Index",
"source_kind": "vendor-index",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -57,10 +57,10 @@
"display_name": "Angular",
"source_name": "OSV Angular",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -83,10 +83,10 @@
"display_name": "Apache HTTP Server",
"source_name": "Apache HTTPD Security",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -109,10 +109,10 @@
"display_name": "Apache HTTP Server",
"source_name": "CISA KEV Apache HTTPD",
"source_kind": "kev-json",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -135,10 +135,10 @@
"display_name": "Apache Tomcat",
"source_name": "Apache Tomcat Security",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -161,10 +161,10 @@
"display_name": "Apache Tomcat",
"source_name": "CISA KEV Tomcat",
"source_kind": "kev-json",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -187,10 +187,10 @@
"display_name": "ASP.NET Core",
"source_name": "OSV ASP.NET Core",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -213,10 +213,10 @@
"display_name": "Astro",
"source_name": "OSV Astro",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -239,10 +239,10 @@
"display_name": "Caddy",
"source_name": "OSV Caddy",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -265,10 +265,10 @@
"display_name": "Directus",
"source_name": "Directus GitHub Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -291,10 +291,10 @@
"display_name": "Directus",
"source_name": "OSV Directus",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -317,10 +317,10 @@
"display_name": "Discourse",
"source_name": "Discourse Release Notes RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -343,10 +343,10 @@
"display_name": "Discourse",
"source_name": "Discourse Security RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -369,10 +369,10 @@
"display_name": "Discourse",
"source_name": "OSV Discourse",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -395,10 +395,10 @@
"display_name": "Django",
"source_name": "Django Security Releases Archive",
"source_kind": "vendor-index",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -421,10 +421,10 @@
"display_name": "Django",
"source_name": "Django Security Weblog",
"source_kind": "vendor-index",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -447,10 +447,10 @@
"display_name": "Django",
"source_name": "OSV Django",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -473,10 +473,10 @@
"display_name": "Drupal",
"source_name": "Drupal Security Advisories RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -499,10 +499,10 @@
"display_name": "Drupal",
"source_name": "OSV Drupal",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -525,10 +525,10 @@
"display_name": "Echo",
"source_name": "OSV Echo",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -551,10 +551,10 @@
"display_name": "esbuild",
"source_name": "OSV esbuild",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -577,10 +577,10 @@
"display_name": "Express",
"source_name": "OSV Express",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -603,10 +603,10 @@
"display_name": "Fastify",
"source_name": "OSV Fastify",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -629,10 +629,10 @@
"display_name": "Flask",
"source_name": "OSV Flask",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -655,10 +655,10 @@
"display_name": "Ghost",
"source_name": "Ghost GitHub Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -681,10 +681,10 @@
"display_name": "Ghost",
"source_name": "OSV Ghost",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -707,10 +707,10 @@
"display_name": "Gin",
"source_name": "OSV Gin",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -733,10 +733,10 @@
"display_name": "Gitea",
"source_name": "OSV Gitea",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -759,10 +759,10 @@
"display_name": "GitLab CE",
"source_name": "GitLab Advisory Database",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -785,10 +785,10 @@
"display_name": "GitLab CE",
"source_name": "GitLab Security Releases Atom",
"source_kind": "atom-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -811,10 +811,10 @@
"display_name": "Grafana",
"source_name": "CISA KEV Grafana",
"source_kind": "kev-json",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -837,10 +837,10 @@
"display_name": "Grafana",
"source_name": "Grafana Security Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -863,10 +863,10 @@
"display_name": "Hapi",
"source_name": "OSV Hapi",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -889,10 +889,10 @@
"display_name": "HAProxy",
"source_name": "HAProxy Blog Feed",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -915,10 +915,10 @@
"display_name": "Jenkins",
"source_name": "Jenkins Security Advisories RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -941,10 +941,10 @@
"display_name": "Joomla",
"source_name": "Joomla Security Centre",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -967,10 +967,10 @@
"display_name": "Joomla",
"source_name": "OSV Joomla",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -993,24 +993,25 @@
"display_name": "Kibana",
"source_name": "Elastic Security Announcements RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"failure_streak": 1,
"last_category": "network",
"updated_at": "2026-03-22T01:14:27+00:00",
"resolved_at": "2026-03-22T01:14:27+00:00",
"failure_streak": 2,
"last_category": "rate_limit",
"last_failure": {
"system_id": "kibana",
"display_name": "Kibana",
"source_name": "Elastic Security Announcements RSS",
"source_kind": "rss-feed",
"source_bucket": "official_sources",
"category": "network",
"exception": "ConnectionError",
"message": "HTTPSConnectionPool(host='discuss.elastic.co', port=443): Max retries exceeded with url: /c/announcements/security-announcements/31.rss (Caused by NameResolutionError(\"HTTPSConnection(host='discuss.elastic.co', port=443): Failed to resolve 'discuss.elastic.co' ([Errno 8] nodename nor servname provided, or not known)\"))",
"status_code": null,
"category": "rate_limit",
"exception": "HTTPError",
"message": "429 Client Error: Too Many Requests for url: https://discuss.elastic.co/c/announcements/security-announcements/31.rss",
"status_code": 429,
"url": "https://discuss.elastic.co/c/announcements/security-announcements/31.rss",
"summary": "kibana::Elastic Security Announcements RSS::network::HTTPSConnectionPool(host='discuss.elastic.co', port=443): Max retries exceeded with url: /c/announcements/security-announcements/31.rss (Caused by NameResolutionError(\"HTTPSConnection(host='discuss.elastic.co', port=443): Failed to resolve 'discuss.elastic.co' ([Errno 8] nodename nor servname provided, or not known)\"))"
"summary": "kibana::Elastic Security Announcements RSS::rate_limit::429 Client Error: Too Many Requests for url: https://discuss.elastic.co/c/announcements/security-announcements/31.rss",
"elapsed_seconds": 5.209
}
},
{
@@ -1019,10 +1020,10 @@
"display_name": "Koa",
"source_name": "OSV Koa",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1045,10 +1046,10 @@
"display_name": "Laravel",
"source_name": "OSV Laravel",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1071,10 +1072,10 @@
"display_name": "Magento Open Source",
"source_name": "Magento GitHub Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1097,10 +1098,10 @@
"display_name": "Magento Open Source",
"source_name": "OSV Magento Open Source",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1123,10 +1124,10 @@
"display_name": "Magento Open Source",
"source_name": "Sansec Research",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1149,10 +1150,10 @@
"display_name": "Mattermost",
"source_name": "Mattermost Security Updates JSON",
"source_kind": "json-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1175,10 +1176,10 @@
"display_name": "Mattermost",
"source_name": "OSV Mattermost",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1201,10 +1202,10 @@
"display_name": "MediaWiki",
"source_name": "MediaWiki Announce RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1227,10 +1228,10 @@
"display_name": "MediaWiki",
"source_name": "OSV MediaWiki",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1253,10 +1254,10 @@
"display_name": "Medusa",
"source_name": "OSV Medusa",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1279,10 +1280,10 @@
"display_name": "Moodle",
"source_name": "OSV Moodle",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1305,10 +1306,10 @@
"display_name": "NestJS",
"source_name": "OSV NestJS",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1331,10 +1332,10 @@
"display_name": "Next.js",
"source_name": "OSV Next.js",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1357,10 +1358,10 @@
"display_name": "Nginx",
"source_name": "CISA KEV NGINX",
"source_kind": "kev-json",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1383,10 +1384,10 @@
"display_name": "Nginx",
"source_name": "NGINX Security Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1409,10 +1410,10 @@
"display_name": "Node.js",
"source_name": "CISA KEV Node.js",
"source_kind": "kev-json",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1435,10 +1436,10 @@
"display_name": "Node.js",
"source_name": "Node.js Security Releases",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1461,10 +1462,10 @@
"display_name": "Nuxt",
"source_name": "OSV Nuxt",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1487,10 +1488,10 @@
"display_name": "OpenCart",
"source_name": "OSV OpenCart",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1513,10 +1514,10 @@
"display_name": "OpenCart",
"source_name": "OpenCart Releases",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1539,10 +1540,10 @@
"display_name": "OpenMage / Mage-OS",
"source_name": "OSV OpenMage",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1565,10 +1566,10 @@
"display_name": "OpenMage / Mage-OS",
"source_name": "OpenMage GitHub Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1591,10 +1592,10 @@
"display_name": "phpMyAdmin",
"source_name": "OSV phpMyAdmin",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1617,10 +1618,10 @@
"display_name": "phpMyAdmin",
"source_name": "phpMyAdmin Security Page",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1643,10 +1644,10 @@
"display_name": "PrestaShop",
"source_name": "Friends Of Presta Security",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1669,10 +1670,10 @@
"display_name": "PrestaShop",
"source_name": "GitHub PrestaShop Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1695,10 +1696,10 @@
"display_name": "PrestaShop",
"source_name": "OSV PrestaShop",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1721,10 +1722,10 @@
"display_name": "PrestaShop",
"source_name": "PrestaShop Security Page",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1747,10 +1748,10 @@
"display_name": "Ruby on Rails",
"source_name": "OSV Rails",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1773,10 +1774,10 @@
"display_name": "React",
"source_name": "OSV React",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1799,10 +1800,10 @@
"display_name": "Redmine",
"source_name": "OSV Redmine",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1825,10 +1826,10 @@
"display_name": "Redmine",
"source_name": "Redmine Security Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1851,10 +1852,10 @@
"display_name": "Saleor",
"source_name": "GitHub Saleor Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1877,10 +1878,10 @@
"display_name": "Saleor",
"source_name": "OSV Saleor",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1903,10 +1904,10 @@
"display_name": "Shopware",
"source_name": "OSV Shopware",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1929,10 +1930,10 @@
"display_name": "Shopware",
"source_name": "Shopware Security Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {

查看文件

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-21T13:36:59+00:00",
"generated_at": "2026-03-22T01:17:39+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": [
@@ -27,11 +27,11 @@
},
{
"label": "\u5df2\u7f16\u76ee\u5b9e\u4f53",
"value": "99"
"value": "109"
},
{
"label": "\u53d1\u73b0 backlog",
"value": "17"
"value": "7"
},
{
"label": "\u5f53\u524d\u8fd0\u884c",
@@ -57,7 +57,7 @@
},
{
"label": "\u751f\u6210\u65f6\u95f4",
"value": "2026-03-21T13:36:59+00:00"
"value": "2026-03-22T01:17:39+00:00"
}
],
"links": [
@@ -300,6 +300,11 @@
"href": "/docs/entity-discovery-backlog.html",
"description": "\u5f85\u7f16\u76ee repo / \u63d2\u4ef6 / \u5305 backlog \u4e0e\u7b49\u5f85\u539f\u56e0\u3002"
},
{
"label": "version sync report",
"href": "/docs/version-sync-report.html",
"description": "\u5b89\u5168\u76f8\u5173\u7248\u672c\u540c\u6b65\u3001source-gap \u4e0e\u7248\u672c\u9a71\u52a8 lab enqueue \u6458\u8981\u3002"
},
{
"label": "repro-map \u771f\u503c",
"href": "/docs/repro-map.html",
@@ -360,6 +365,21 @@
"href": "/data/entity-queues.json",
"description": "discovery/history/latest/workflow \u56db\u7c7b\u961f\u5217\u6458\u8981\u3002"
},
{
"label": "version-completeness.json",
"href": "/data/version-completeness.json",
"description": "\u6700\u65b0\u7248\u672c\u540c\u6b65\u8986\u76d6\u3001\u5b89\u5168\u76f8\u5173\u7248\u672c\u5386\u53f2\u4e0e auto-promoted \u7edf\u8ba1\u3002"
},
{
"label": "version-backlog.json",
"href": "/data/version-backlog.json",
"description": "source-gap\u3001\u672a\u89e3\u51b3\u7248\u672c\u7f3a\u53e3\u4e0e lab pending \u961f\u5217\u3002"
},
{
"label": "release-index.json",
"href": "/data/release-index.json",
"description": "\u5b89\u5168\u76f8\u5173\u7248\u672c\u8bb0\u5f55\u7d22\u5f15\u771f\u503c\u3002"
},
{
"label": "runs.json",
"href": "/runs.json",
@@ -417,6 +437,18 @@
"label": "\u5b9e\u4f53\u961f\u5217",
"value": "/data/entity-queues.json"
},
{
"label": "\u7248\u672c\u5b8c\u6574\u5ea6",
"value": "/data/version-completeness.json"
},
{
"label": "\u7248\u672c backlog",
"value": "/data/version-backlog.json"
},
{
"label": "\u7248\u672c\u7d22\u5f15",
"value": "/data/release-index.json"
},
{
"label": "\u9ed8\u8ba4\u5165\u53e3",
"value": "/index.html"
@@ -4214,7 +4246,7 @@
"fields": [
{
"label": "\u5b98\u65b9\u6765\u6e90",
"value": "Elastic Security Announcements\nElastic Security Announcements RSS\nNVD Kibana"
"value": "Elastic Product Security\nElastic Security Announcements RSS\nNVD Kibana"
},
{
"label": "\u751f\u6001\u6765\u6e90",

查看文件

@@ -63,6 +63,10 @@ const DATA_HUB_ITEMS = [
{ 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: "version-completeness.json", href: "/data/version-completeness.json", description: "最新版本同步覆盖、安全相关版本历史与 auto-promoted 统计。", badge: "json" },
{ title: "version-backlog.json", href: "/data/version-backlog.json", description: "source-gap、未解决版本缺口与 lab pending 队列。", badge: "json" },
{ title: "release-index.json", href: "/data/release-index.json", description: "安全相关版本记录索引真值。", badge: "json" },
{ title: "lab-enqueue-summary.json", href: "/data/lab-enqueue-summary.json", description: "版本变化触发的 lab 入队与 pending 摘要。", badge: "json" },
{ title: "runs.json", href: "/runs.json", description: "最近运行的结构化详情,可用于 UI 和调试。", badge: "json" },
{ title: "systems.json", href: "/systems.json", description: "系统级覆盖、分类、更新时间和浏览器证据统计。", badge: "json" },
{ title: "entities.json", href: "/entities.json", description: "分层实体索引、实体状态和系统归属。", badge: "json" },
@@ -101,6 +105,7 @@ const state = {
architecture: null,
completeness: null,
entityCompleteness: null,
versionCompleteness: null,
sourceHealth: null,
alerts: [],
monitorSummary: null,
@@ -297,11 +302,14 @@ function familyOptions() {
function metricCards() {
const completeness = state.completeness || state.summary?.completeness || {};
const entityCoverage = state.entityCompleteness || state.summary?.entity_coverage || completeness.entity_coverage || {};
const versionCoverage = state.versionCompleteness || state.summary?.version_coverage || completeness.version_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 latestVersionSynced = Number(versionCoverage.latest_version_synced_count || 0);
const sourceGapCount = Number(versionCoverage.source_gap_count || 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);
@@ -322,6 +330,13 @@ function metricCards() {
color: "var(--accent-yellow)",
iconName: "systems"
},
{
label: "版本同步",
value: latestVersionSynced,
note: `source-gap ${sourceGapCount}`,
color: "var(--accent-blue)",
iconName: "spark"
},
{
label: "active sources",
value: activeSources,
@@ -602,6 +617,7 @@ function renderSystemCards(items, compact = false) {
const verified = Number(system.verified_real || 0) + Number(system.verified_synthetic || 0);
const coverage = Math.round((verified / total) * 100);
const entitySummary = system.entity_summary || {};
const versionSummary = system.version_summary || {};
const topEntities = system.top_entities || [];
const backlogPreview = system.backlog_preview || [];
return `
@@ -617,6 +633,8 @@ function renderSystemCards(items, compact = false) {
<span class="tag">阻塞 ${escapeHtml(system.blocked || 0)}</span>
<span class="tag">实体 ${escapeHtml(entitySummary.cataloged_entity_total || 0)}</span>
<span class="tag">backlog ${escapeHtml(entitySummary.candidate_entity_total || 0)}</span>
<span class="tag">latest ${escapeHtml(system.latest_version || "-")}</span>
<span class="tag">version ${escapeHtml(system.version_sync_status || "-")}</span>
</div>
<div class="meter"><span style="--fill:${coverage}%"></span></div>
${compact ? "" : `
@@ -629,6 +647,10 @@ function renderSystemCards(items, compact = false) {
<span class="plan-label">队列与缺口</span>
<div class="plan-copy">history complete ${escapeHtml(entitySummary.history_full_complete_count || 0)} · latest green ${escapeHtml(entitySummary.latest_green_count || 0)} · version gap ${escapeHtml(entitySummary.version_gap_entity_count || 0)}</div>
</article>
<article class="plan-card">
<span class="plan-label">版本同步</span>
<div class="plan-copy">latest synced ${escapeHtml(versionSummary.latest_version_synced_count || 0)} · source-gap ${escapeHtml(versionSummary.source_gap_count || 0)} · security versions ${escapeHtml(system.security_version_count || 0)}</div>
</article>
</div>
${(topEntities.length || backlogPreview.length) ? `
<div class="tag-row" style="margin-top:10px;">
@@ -816,6 +838,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 versionCoverage = state.versionCompleteness || state.summary?.version_coverage || completeness.version_coverage || {};
const sourceHealth = state.sourceHealth || completeness.source_health || {};
const systems = (state.completeness?.systems || []).map((system) => `
<article class="plan-card">
@@ -874,14 +897,32 @@ function renderCompletenessPanel(panelKey, compact = false) {
<strong>version mapped</strong>
<span>${escapeHtml(entityCoverage.version_mapped_count || 0)}</span>
</article>
<article class="detail-stat">
<strong>latest version synced</strong>
<span>${escapeHtml(versionCoverage.latest_version_synced_count || 0)}</span>
</article>
<article class="detail-stat">
<strong>version source-gap</strong>
<span>${escapeHtml(versionCoverage.source_gap_count || 0)}</span>
</article>
<article class="detail-stat">
<strong>security versions</strong>
<span>${escapeHtml(versionCoverage.security_version_total || 0)}</span>
</article>
<article class="detail-stat">
<strong>lab enqueued</strong>
<span>${escapeHtml(versionCoverage.lab_enqueued_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="/docs/version-sync-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/version-completeness.json" target="_blank" rel="noreferrer">${icon("json")}<span>打开 version-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>` : ""}
@@ -1634,7 +1675,7 @@ async function loadData(preserveSelection = true) {
renderSyncState("loading", "刷新中", `本地时间 ${new Date().toLocaleTimeString("zh-CN", { hour12: false })}`);
try {
const [summary, runs, systems, entities, advisories, profiles, architecture, completeness, entityCompleteness, sourceHealth, alerts, monitorSummary] = await Promise.all([
const [summary, runs, systems, entities, advisories, profiles, architecture, completeness, entityCompleteness, versionCompleteness, sourceHealth, alerts, monitorSummary] = await Promise.all([
fetchJson("/summary.json"),
fetchJson("/runs.json"),
fetchJson("/systems.json"),
@@ -1644,6 +1685,7 @@ async function loadData(preserveSelection = true) {
fetchJson("/architecture.json"),
fetchJson("/data/completeness.json"),
fetchJson("/data/entity-completeness.json"),
fetchJson("/data/version-completeness.json"),
fetchJson("/data/source-health.json"),
fetchJson("/data/alerts.json"),
fetchJson("/data/monitor-summary.json")
@@ -1658,6 +1700,7 @@ async function loadData(preserveSelection = true) {
state.architecture = architecture;
state.completeness = completeness;
state.entityCompleteness = entityCompleteness;
state.versionCompleteness = versionCompleteness;
state.sourceHealth = sourceHealth;
state.alerts = alerts;
state.monitorSummary = monitorSummary;

查看文件

@@ -5,10 +5,10 @@
"display_name": "Adminer",
"source_name": "OSV Adminer",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -31,10 +31,10 @@
"display_name": "Adobe Commerce",
"source_name": "Adobe Magento Security Index",
"source_kind": "vendor-index",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -57,10 +57,10 @@
"display_name": "Angular",
"source_name": "OSV Angular",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -83,10 +83,10 @@
"display_name": "Apache HTTP Server",
"source_name": "Apache HTTPD Security",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -109,10 +109,10 @@
"display_name": "Apache HTTP Server",
"source_name": "CISA KEV Apache HTTPD",
"source_kind": "kev-json",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -135,10 +135,10 @@
"display_name": "Apache Tomcat",
"source_name": "Apache Tomcat Security",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -161,10 +161,10 @@
"display_name": "Apache Tomcat",
"source_name": "CISA KEV Tomcat",
"source_kind": "kev-json",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -187,10 +187,10 @@
"display_name": "ASP.NET Core",
"source_name": "OSV ASP.NET Core",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -213,10 +213,10 @@
"display_name": "Astro",
"source_name": "OSV Astro",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -239,10 +239,10 @@
"display_name": "Caddy",
"source_name": "OSV Caddy",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -265,10 +265,10 @@
"display_name": "Directus",
"source_name": "Directus GitHub Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -291,10 +291,10 @@
"display_name": "Directus",
"source_name": "OSV Directus",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -317,10 +317,10 @@
"display_name": "Discourse",
"source_name": "Discourse Release Notes RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -343,10 +343,10 @@
"display_name": "Discourse",
"source_name": "Discourse Security RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -369,10 +369,10 @@
"display_name": "Discourse",
"source_name": "OSV Discourse",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -395,10 +395,10 @@
"display_name": "Django",
"source_name": "Django Security Releases Archive",
"source_kind": "vendor-index",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -421,10 +421,10 @@
"display_name": "Django",
"source_name": "Django Security Weblog",
"source_kind": "vendor-index",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -447,10 +447,10 @@
"display_name": "Django",
"source_name": "OSV Django",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -473,10 +473,10 @@
"display_name": "Drupal",
"source_name": "Drupal Security Advisories RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -499,10 +499,10 @@
"display_name": "Drupal",
"source_name": "OSV Drupal",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -525,10 +525,10 @@
"display_name": "Echo",
"source_name": "OSV Echo",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -551,10 +551,10 @@
"display_name": "esbuild",
"source_name": "OSV esbuild",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -577,10 +577,10 @@
"display_name": "Express",
"source_name": "OSV Express",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -603,10 +603,10 @@
"display_name": "Fastify",
"source_name": "OSV Fastify",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -629,10 +629,10 @@
"display_name": "Flask",
"source_name": "OSV Flask",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -655,10 +655,10 @@
"display_name": "Ghost",
"source_name": "Ghost GitHub Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -681,10 +681,10 @@
"display_name": "Ghost",
"source_name": "OSV Ghost",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -707,10 +707,10 @@
"display_name": "Gin",
"source_name": "OSV Gin",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -733,10 +733,10 @@
"display_name": "Gitea",
"source_name": "OSV Gitea",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -759,10 +759,10 @@
"display_name": "GitLab CE",
"source_name": "GitLab Advisory Database",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -785,10 +785,10 @@
"display_name": "GitLab CE",
"source_name": "GitLab Security Releases Atom",
"source_kind": "atom-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -811,10 +811,10 @@
"display_name": "Grafana",
"source_name": "CISA KEV Grafana",
"source_kind": "kev-json",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -837,10 +837,10 @@
"display_name": "Grafana",
"source_name": "Grafana Security Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -863,10 +863,10 @@
"display_name": "Hapi",
"source_name": "OSV Hapi",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -889,10 +889,10 @@
"display_name": "HAProxy",
"source_name": "HAProxy Blog Feed",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -915,10 +915,10 @@
"display_name": "Jenkins",
"source_name": "Jenkins Security Advisories RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -941,10 +941,10 @@
"display_name": "Joomla",
"source_name": "Joomla Security Centre",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -967,10 +967,10 @@
"display_name": "Joomla",
"source_name": "OSV Joomla",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -993,24 +993,25 @@
"display_name": "Kibana",
"source_name": "Elastic Security Announcements RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"failure_streak": 1,
"last_category": "network",
"updated_at": "2026-03-22T01:14:27+00:00",
"resolved_at": "2026-03-22T01:14:27+00:00",
"failure_streak": 2,
"last_category": "rate_limit",
"last_failure": {
"system_id": "kibana",
"display_name": "Kibana",
"source_name": "Elastic Security Announcements RSS",
"source_kind": "rss-feed",
"source_bucket": "official_sources",
"category": "network",
"exception": "ConnectionError",
"message": "HTTPSConnectionPool(host='discuss.elastic.co', port=443): Max retries exceeded with url: /c/announcements/security-announcements/31.rss (Caused by NameResolutionError(\"HTTPSConnection(host='discuss.elastic.co', port=443): Failed to resolve 'discuss.elastic.co' ([Errno 8] nodename nor servname provided, or not known)\"))",
"status_code": null,
"category": "rate_limit",
"exception": "HTTPError",
"message": "429 Client Error: Too Many Requests for url: https://discuss.elastic.co/c/announcements/security-announcements/31.rss",
"status_code": 429,
"url": "https://discuss.elastic.co/c/announcements/security-announcements/31.rss",
"summary": "kibana::Elastic Security Announcements RSS::network::HTTPSConnectionPool(host='discuss.elastic.co', port=443): Max retries exceeded with url: /c/announcements/security-announcements/31.rss (Caused by NameResolutionError(\"HTTPSConnection(host='discuss.elastic.co', port=443): Failed to resolve 'discuss.elastic.co' ([Errno 8] nodename nor servname provided, or not known)\"))"
"summary": "kibana::Elastic Security Announcements RSS::rate_limit::429 Client Error: Too Many Requests for url: https://discuss.elastic.co/c/announcements/security-announcements/31.rss",
"elapsed_seconds": 5.209
}
},
{
@@ -1019,10 +1020,10 @@
"display_name": "Koa",
"source_name": "OSV Koa",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1045,10 +1046,10 @@
"display_name": "Laravel",
"source_name": "OSV Laravel",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1071,10 +1072,10 @@
"display_name": "Magento Open Source",
"source_name": "Magento GitHub Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1097,10 +1098,10 @@
"display_name": "Magento Open Source",
"source_name": "OSV Magento Open Source",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1123,10 +1124,10 @@
"display_name": "Magento Open Source",
"source_name": "Sansec Research",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1149,10 +1150,10 @@
"display_name": "Mattermost",
"source_name": "Mattermost Security Updates JSON",
"source_kind": "json-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1175,10 +1176,10 @@
"display_name": "Mattermost",
"source_name": "OSV Mattermost",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1201,10 +1202,10 @@
"display_name": "MediaWiki",
"source_name": "MediaWiki Announce RSS",
"source_kind": "rss-feed",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1227,10 +1228,10 @@
"display_name": "MediaWiki",
"source_name": "OSV MediaWiki",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1253,10 +1254,10 @@
"display_name": "Medusa",
"source_name": "OSV Medusa",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1279,10 +1280,10 @@
"display_name": "Moodle",
"source_name": "OSV Moodle",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1305,10 +1306,10 @@
"display_name": "NestJS",
"source_name": "OSV NestJS",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1331,10 +1332,10 @@
"display_name": "Next.js",
"source_name": "OSV Next.js",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1357,10 +1358,10 @@
"display_name": "Nginx",
"source_name": "CISA KEV NGINX",
"source_kind": "kev-json",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1383,10 +1384,10 @@
"display_name": "Nginx",
"source_name": "NGINX Security Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1409,10 +1410,10 @@
"display_name": "Node.js",
"source_name": "CISA KEV Node.js",
"source_kind": "kev-json",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1435,10 +1436,10 @@
"display_name": "Node.js",
"source_name": "Node.js Security Releases",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1461,10 +1462,10 @@
"display_name": "Nuxt",
"source_name": "OSV Nuxt",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1487,10 +1488,10 @@
"display_name": "OpenCart",
"source_name": "OSV OpenCart",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1513,10 +1514,10 @@
"display_name": "OpenCart",
"source_name": "OpenCart Releases",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1539,10 +1540,10 @@
"display_name": "OpenMage / Mage-OS",
"source_name": "OSV OpenMage",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1565,10 +1566,10 @@
"display_name": "OpenMage / Mage-OS",
"source_name": "OpenMage GitHub Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1591,10 +1592,10 @@
"display_name": "phpMyAdmin",
"source_name": "OSV phpMyAdmin",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1617,10 +1618,10 @@
"display_name": "phpMyAdmin",
"source_name": "phpMyAdmin Security Page",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1643,10 +1644,10 @@
"display_name": "PrestaShop",
"source_name": "Friends Of Presta Security",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1669,10 +1670,10 @@
"display_name": "PrestaShop",
"source_name": "GitHub PrestaShop Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1695,10 +1696,10 @@
"display_name": "PrestaShop",
"source_name": "OSV PrestaShop",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1721,10 +1722,10 @@
"display_name": "PrestaShop",
"source_name": "PrestaShop Security Page",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1747,10 +1748,10 @@
"display_name": "Ruby on Rails",
"source_name": "OSV Rails",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1773,10 +1774,10 @@
"display_name": "React",
"source_name": "OSV React",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1799,10 +1800,10 @@
"display_name": "Redmine",
"source_name": "OSV Redmine",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1825,10 +1826,10 @@
"display_name": "Redmine",
"source_name": "Redmine Security Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1851,10 +1852,10 @@
"display_name": "Saleor",
"source_name": "GitHub Saleor Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1877,10 +1878,10 @@
"display_name": "Saleor",
"source_name": "OSV Saleor",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1903,10 +1904,10 @@
"display_name": "Shopware",
"source_name": "OSV Shopware",
"source_kind": "osv-batch",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {
@@ -1929,10 +1930,10 @@
"display_name": "Shopware",
"source_name": "Shopware Security Advisories",
"source_kind": "html-links",
"status": "open",
"status": "resolved",
"opened_at": "2026-03-21T12:51:08+00:00",
"updated_at": "2026-03-21T12:51:08+00:00",
"resolved_at": null,
"updated_at": "2026-03-22T01:06:45+00:00",
"resolved_at": "2026-03-22T01:06:45+00:00",
"failure_streak": 1,
"last_category": "network",
"last_failure": {

查看文件

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-21T13:36:59+00:00",
"generated_at": "2026-03-22T01:17:39+00:00",
"advisory_total": 89,
"registry_advisory_total": 2402,
"scope": "latest-run-backed-advisories",
@@ -16,7 +16,7 @@
"blocked": 0,
"manual": 0,
"verified_ratio": 100.0,
"complete": false,
"complete": true,
"systems": [
{
"system_id": "gitea",
@@ -168,24 +168,21 @@
}
],
"ingest_health": {
"failure_count": 2,
"failures": [
"directus::OSV Directus::network::HTTPSConnectionPool(host='api.osv.dev', port=443): Read timed out. (read timeout=30)",
"moodle::OSV Moodle::network::HTTPSConnectionPool(host='api.osv.dev', port=443): Read timed out. (read timeout=30)"
]
"failure_count": 0,
"failures": []
},
"source_health": {
"active_source_count": 101,
"green_source_count": 26,
"failure_count": 75,
"last_fully_green_run": "2026-03-20T15:45:58+00:00",
"open_alert_count": 75,
"resolved_alert_count": 26
"active_source_count": 102,
"green_source_count": 102,
"failure_count": 0,
"last_fully_green_run": "2026-03-22T01:17:22+00:00",
"open_alert_count": 0,
"resolved_alert_count": 101
},
"entity_coverage": {
"generated_at": "2026-03-21T13:36:59+00:00",
"cataloged_entity_total": 99,
"candidate_entity_total": 17,
"generated_at": "2026-03-22T01:17:37+00:00",
"cataloged_entity_total": 109,
"candidate_entity_total": 7,
"history_full_complete_count": 40,
"latest_green_count": 99,
"workflow_complete_count": 99,
@@ -404,9 +401,9 @@
{
"system_id": "directus",
"display_name": "Directus",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -416,17 +413,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "directus--repo-candidate--https-github-com-directus-directus",
"display_name": "directus / directus",
"entity_id": "directus--repo--directus-directus",
"entity_type": "repo",
"risk": "medium"
"display_name": "directus / directus",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "discourse",
@@ -641,9 +641,9 @@
{
"system_id": "ghost",
"display_name": "Ghost",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -653,17 +653,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "ghost--repo-candidate--https-github-com-tryghost-ghost",
"display_name": "TryGhost / Ghost",
"entity_id": "ghost--repo--tryghost-ghost",
"entity_type": "repo",
"risk": "medium"
"display_name": "TryGhost / Ghost",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "gin",
@@ -935,9 +938,9 @@
{
"system_id": "magento-open-source",
"display_name": "Magento Open Source",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -947,17 +950,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "magento-open-source--repo-candidate--https-github-com-magento-magento2",
"display_name": "magento / magento2",
"entity_id": "magento-open-source--repo--magento-magento2",
"entity_type": "repo",
"risk": "medium"
"display_name": "magento / magento2",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "mattermost",
@@ -1219,9 +1225,9 @@
{
"system_id": "opencart",
"display_name": "OpenCart",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1231,24 +1237,27 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "opencart--repo-candidate--https-github-com-opencart-opencart",
"display_name": "opencart / opencart",
"entity_id": "opencart--repo--opencart-opencart",
"entity_type": "repo",
"risk": "medium"
"display_name": "opencart / opencart",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "openmage",
"display_name": "OpenMage / Mage-OS",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1258,17 +1267,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "openmage--repo-candidate--https-github-com-openmage-magento-lts",
"display_name": "OpenMage / magento-lts",
"entity_id": "openmage--repo--openmage-magento-lts",
"entity_type": "repo",
"risk": "medium"
"display_name": "OpenMage / magento-lts",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "phpmyadmin",
@@ -1293,9 +1305,9 @@
{
"system_id": "prestashop",
"display_name": "PrestaShop",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1305,17 +1317,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "prestashop--repo-candidate--https-github-com-prestashop-prestashop",
"display_name": "PrestaShop / PrestaShop",
"entity_id": "prestashop--repo--prestashop-prestashop",
"entity_type": "repo",
"risk": "medium"
"display_name": "PrestaShop / PrestaShop",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "rails",
@@ -1415,9 +1430,9 @@
{
"system_id": "saleor",
"display_name": "Saleor",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1427,24 +1442,27 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "saleor--repo-candidate--https-github-com-saleor-saleor",
"display_name": "saleor / saleor",
"entity_id": "saleor--repo--saleor-saleor",
"entity_type": "repo",
"risk": "medium"
"display_name": "saleor / saleor",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "shopware",
"display_name": "Shopware",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1454,17 +1472,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "shopware--repo-candidate--https-github-com-shopware-shopware",
"display_name": "shopware / shopware",
"entity_id": "shopware--repo--shopware-shopware",
"entity_type": "repo",
"risk": "medium"
"display_name": "shopware / shopware",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "spring-boot",
@@ -1549,9 +1570,9 @@
{
"system_id": "strapi",
"display_name": "Strapi",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1561,17 +1582,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "strapi--repo-candidate--https-github-com-strapi-strapi",
"display_name": "strapi / strapi",
"entity_id": "strapi--repo--strapi-strapi",
"entity_type": "repo",
"risk": "medium"
"display_name": "strapi / strapi",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "sveltekit",
@@ -1865,9 +1889,9 @@
{
"system_id": "woocommerce",
"display_name": "WooCommerce",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1877,17 +1901,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "woocommerce--repo-candidate--https-github-com-woocommerce-woocommerce",
"display_name": "woocommerce / woocommerce",
"entity_id": "woocommerce--repo--woocommerce-woocommerce",
"entity_type": "repo",
"risk": "medium"
"display_name": "woocommerce / woocommerce",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "wordpress",
@@ -1911,33 +1938,30 @@
}
],
"queues": {
"discovery_queue": 17,
"history_queue": 17,
"latest_queue": 0,
"discovery_queue": 7,
"history_queue": 27,
"latest_queue": 10,
"workflow_queue": 2176
}
},
"monitor_summary": {
"generated_at": "2026-03-21T12:51:08+00:00",
"active_source_count": 101,
"green_source_count": 26,
"source_failure_count": 75,
"open_alert_count": 75,
"resolved_alert_count": 26,
"last_fully_green_run": "2026-03-20T15:45:58+00:00",
"generated_at": "2026-03-22T01:17:22+00:00",
"active_source_count": 102,
"green_source_count": 102,
"source_failure_count": 0,
"open_alert_count": 0,
"resolved_alert_count": 101,
"last_fully_green_run": "2026-03-22T01:17:22+00:00",
"source_catalog": {
"system_count": 62,
"source_count": 179,
"retired_source_count": 78
"retired_source_count": 77
},
"ingest": {
"new_count": 3,
"new_count": 0,
"updated_count": 0,
"failure_count": 2,
"systems_touched": [
"spring-security",
"traefik"
]
"failure_count": 0,
"systems_touched": []
},
"validation": {
"passed": true,
@@ -1945,12 +1969,26 @@
"errors": []
},
"entity_coverage": {
"cataloged_entity_total": 99,
"candidate_entity_total": 17,
"cataloged_entity_total": 109,
"candidate_entity_total": 7,
"history_full_complete_count": 40,
"workflow_complete_count": 99,
"version_mapped_count": 51,
"official_source_covered_count": 99
},
"version_coverage": {
"cataloged_entity_total": 109,
"latest_version_synced_count": 94,
"source_gap_count": 15,
"security_version_total": 6183,
"security_version_entity_count": 82,
"auto_promoted_entity_count": 10,
"lab_enqueued_count": 0
},
"lab_enqueue": {
"enqueued": 0,
"queue_total": 2358,
"pending_count": 0
}
},
"historical_blockers": [

查看文件

@@ -1,7 +1,7 @@
{
"generated_at": "2026-03-21T13:36:59+00:00",
"cataloged_entity_total": 99,
"candidate_entity_total": 17,
"generated_at": "2026-03-22T01:17:37+00:00",
"cataloged_entity_total": 109,
"candidate_entity_total": 7,
"history_full_complete_count": 40,
"latest_green_count": 99,
"workflow_complete_count": 99,
@@ -220,9 +220,9 @@
{
"system_id": "directus",
"display_name": "Directus",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -232,17 +232,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "directus--repo-candidate--https-github-com-directus-directus",
"display_name": "directus / directus",
"entity_id": "directus--repo--directus-directus",
"entity_type": "repo",
"risk": "medium"
"display_name": "directus / directus",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "discourse",
@@ -457,9 +460,9 @@
{
"system_id": "ghost",
"display_name": "Ghost",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -469,17 +472,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "ghost--repo-candidate--https-github-com-tryghost-ghost",
"display_name": "TryGhost / Ghost",
"entity_id": "ghost--repo--tryghost-ghost",
"entity_type": "repo",
"risk": "medium"
"display_name": "TryGhost / Ghost",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "gin",
@@ -751,9 +757,9 @@
{
"system_id": "magento-open-source",
"display_name": "Magento Open Source",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -763,17 +769,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "magento-open-source--repo-candidate--https-github-com-magento-magento2",
"display_name": "magento / magento2",
"entity_id": "magento-open-source--repo--magento-magento2",
"entity_type": "repo",
"risk": "medium"
"display_name": "magento / magento2",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "mattermost",
@@ -1035,9 +1044,9 @@
{
"system_id": "opencart",
"display_name": "OpenCart",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1047,24 +1056,27 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "opencart--repo-candidate--https-github-com-opencart-opencart",
"display_name": "opencart / opencart",
"entity_id": "opencart--repo--opencart-opencart",
"entity_type": "repo",
"risk": "medium"
"display_name": "opencart / opencart",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "openmage",
"display_name": "OpenMage / Mage-OS",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1074,17 +1086,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "openmage--repo-candidate--https-github-com-openmage-magento-lts",
"display_name": "OpenMage / magento-lts",
"entity_id": "openmage--repo--openmage-magento-lts",
"entity_type": "repo",
"risk": "medium"
"display_name": "OpenMage / magento-lts",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "phpmyadmin",
@@ -1109,9 +1124,9 @@
{
"system_id": "prestashop",
"display_name": "PrestaShop",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1121,17 +1136,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "prestashop--repo-candidate--https-github-com-prestashop-prestashop",
"display_name": "PrestaShop / PrestaShop",
"entity_id": "prestashop--repo--prestashop-prestashop",
"entity_type": "repo",
"risk": "medium"
"display_name": "PrestaShop / PrestaShop",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "rails",
@@ -1231,9 +1249,9 @@
{
"system_id": "saleor",
"display_name": "Saleor",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1243,24 +1261,27 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "saleor--repo-candidate--https-github-com-saleor-saleor",
"display_name": "saleor / saleor",
"entity_id": "saleor--repo--saleor-saleor",
"entity_type": "repo",
"risk": "medium"
"display_name": "saleor / saleor",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "shopware",
"display_name": "Shopware",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1270,17 +1291,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "shopware--repo-candidate--https-github-com-shopware-shopware",
"display_name": "shopware / shopware",
"entity_id": "shopware--repo--shopware-shopware",
"entity_type": "repo",
"risk": "medium"
"display_name": "shopware / shopware",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "spring-boot",
@@ -1365,9 +1389,9 @@
{
"system_id": "strapi",
"display_name": "Strapi",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1377,17 +1401,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "strapi--repo-candidate--https-github-com-strapi-strapi",
"display_name": "strapi / strapi",
"entity_id": "strapi--repo--strapi-strapi",
"entity_type": "repo",
"risk": "medium"
"display_name": "strapi / strapi",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "sveltekit",
@@ -1681,9 +1708,9 @@
{
"system_id": "woocommerce",
"display_name": "WooCommerce",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1693,17 +1720,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "woocommerce--repo-candidate--https-github-com-woocommerce-woocommerce",
"display_name": "woocommerce / woocommerce",
"entity_id": "woocommerce--repo--woocommerce-woocommerce",
"entity_type": "repo",
"risk": "medium"
"display_name": "woocommerce / woocommerce",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "wordpress",
@@ -1727,9 +1757,9 @@
}
],
"queues": {
"discovery_queue": 17,
"history_queue": 17,
"latest_queue": 0,
"discovery_queue": 7,
"history_queue": 27,
"latest_queue": 10,
"workflow_queue": 2176
}
}

查看文件

@@ -1,50 +1,21 @@
[
{
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/go-gitea/gitea/security/advisories",
"source_name": "GitHub Gitea Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/go-gitea/gitea",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -53,10 +24,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/medusajs/medusa/security/advisories",
"source_name": "GitHub Medusa Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/medusajs/medusa",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -65,10 +43,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vercel/next.js/security/advisories",
"source_name": "GitHub Next.js Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vercel/next.js",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -77,46 +62,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/nuxt/nuxt/security/advisories",
"source_name": "Nuxt Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/nuxt/nuxt",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -125,46 +81,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/facebook/react/security/advisories",
"source_name": "GitHub React Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/facebook/react",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -173,10 +100,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vitejs/vite/security/advisories",
"source_name": "Vite Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vitejs/vite",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -185,22 +119,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vuejs/core/security",
"source_name": "Vue Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vuejs/core",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
}
]

查看文件

@@ -1,54 +1,25 @@
{
"generated_at": "2026-03-21T13:36:59+00:00",
"generated_at": "2026-03-22T01:17:37+00:00",
"discovery_queue": {
"count": 17,
"count": 7,
"items": [
{
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/go-gitea/gitea/security/advisories",
"source_name": "GitHub Gitea Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/go-gitea/gitea",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -57,10 +28,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/medusajs/medusa/security/advisories",
"source_name": "GitHub Medusa Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/medusajs/medusa",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -69,10 +47,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vercel/next.js/security/advisories",
"source_name": "GitHub Next.js Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vercel/next.js",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -81,46 +66,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/nuxt/nuxt/security/advisories",
"source_name": "Nuxt Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/nuxt/nuxt",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -129,46 +85,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/facebook/react/security/advisories",
"source_name": "GitHub React Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/facebook/react",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -177,10 +104,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vitejs/vite/security/advisories",
"source_name": "Vite Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vitejs/vite",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -189,28 +123,23 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vuejs/core/security",
"source_name": "Vue Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vuejs/core",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
}
]
},
"history_queue": {
"count": 17,
"count": 27,
"items": [
{
"entity_id": "caddy--extension--github-com-caddyserver-caddy-v2",
@@ -330,12 +259,153 @@
"root_system_id": "werkzeug",
"history_policy": "history-full",
"history_backfill_status": "seeded"
},
{
"entity_id": "directus--repo--directus-directus",
"display_name": "directus / directus",
"root_system_id": "directus",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "ghost--repo--tryghost-ghost",
"display_name": "TryGhost / Ghost",
"root_system_id": "ghost",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "magento-open-source--repo--magento-magento2",
"display_name": "magento / magento2",
"root_system_id": "magento-open-source",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "opencart--repo--opencart-opencart",
"display_name": "opencart / opencart",
"root_system_id": "opencart",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "openmage--repo--openmage-magento-lts",
"display_name": "OpenMage / magento-lts",
"root_system_id": "openmage",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "prestashop--repo--prestashop-prestashop",
"display_name": "PrestaShop / PrestaShop",
"root_system_id": "prestashop",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "saleor--repo--saleor-saleor",
"display_name": "saleor / saleor",
"root_system_id": "saleor",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "shopware--repo--shopware-shopware",
"display_name": "shopware / shopware",
"root_system_id": "shopware",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "strapi--repo--strapi-strapi",
"display_name": "strapi / strapi",
"root_system_id": "strapi",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "woocommerce--repo--woocommerce-woocommerce",
"display_name": "woocommerce / woocommerce",
"root_system_id": "woocommerce",
"history_policy": "history-full",
"history_backfill_status": "pending"
}
]
},
"latest_queue": {
"count": 0,
"items": []
"count": 10,
"items": [
{
"entity_id": "directus--repo--directus-directus",
"display_name": "directus / directus",
"root_system_id": "directus",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "ghost--repo--tryghost-ghost",
"display_name": "TryGhost / Ghost",
"root_system_id": "ghost",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "magento-open-source--repo--magento-magento2",
"display_name": "magento / magento2",
"root_system_id": "magento-open-source",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "opencart--repo--opencart-opencart",
"display_name": "opencart / opencart",
"root_system_id": "opencart",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "openmage--repo--openmage-magento-lts",
"display_name": "OpenMage / magento-lts",
"root_system_id": "openmage",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "prestashop--repo--prestashop-prestashop",
"display_name": "PrestaShop / PrestaShop",
"root_system_id": "prestashop",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "saleor--repo--saleor-saleor",
"display_name": "saleor / saleor",
"root_system_id": "saleor",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "shopware--repo--shopware-shopware",
"display_name": "shopware / shopware",
"root_system_id": "shopware",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "strapi--repo--strapi-strapi",
"display_name": "strapi / strapi",
"root_system_id": "strapi",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "woocommerce--repo--woocommerce-woocommerce",
"display_name": "woocommerce / woocommerce",
"root_system_id": "woocommerce",
"latest_sync_status": "pending",
"last_synced_at": ""
}
]
},
"workflow_queue": {
"count": 2176,

文件差异内容过多而无法显示 加载差异

查看文件

@@ -1,24 +1,21 @@
{
"generated_at": "2026-03-21T12:51:08+00:00",
"active_source_count": 101,
"green_source_count": 26,
"source_failure_count": 75,
"open_alert_count": 75,
"resolved_alert_count": 26,
"last_fully_green_run": "2026-03-20T15:45:58+00:00",
"generated_at": "2026-03-22T01:17:22+00:00",
"active_source_count": 102,
"green_source_count": 102,
"source_failure_count": 0,
"open_alert_count": 0,
"resolved_alert_count": 101,
"last_fully_green_run": "2026-03-22T01:17:22+00:00",
"source_catalog": {
"system_count": 62,
"source_count": 179,
"retired_source_count": 78
"retired_source_count": 77
},
"ingest": {
"new_count": 3,
"new_count": 0,
"updated_count": 0,
"failure_count": 2,
"systems_touched": [
"spring-security",
"traefik"
]
"failure_count": 0,
"systems_touched": []
},
"validation": {
"passed": true,
@@ -26,11 +23,25 @@
"errors": []
},
"entity_coverage": {
"cataloged_entity_total": 99,
"candidate_entity_total": 17,
"cataloged_entity_total": 109,
"candidate_entity_total": 7,
"history_full_complete_count": 40,
"workflow_complete_count": 99,
"version_mapped_count": 51,
"official_source_covered_count": 99
},
"version_coverage": {
"cataloged_entity_total": 109,
"latest_version_synced_count": 94,
"source_gap_count": 15,
"security_version_total": 6183,
"security_version_entity_count": 82,
"auto_promoted_entity_count": 10,
"lab_enqueued_count": 0
},
"lab_enqueue": {
"enqueued": 0,
"queue_total": 2358,
"pending_count": 0
}
}

文件差异内容过多而无法显示 加载差异

查看文件

@@ -1,9 +1,9 @@
{
"generated_at": "2026-03-21T09:17:05+00:00",
"generated_at": "2026-03-22T01:17:13+00:00",
"system_count": 62,
"source_count": 179,
"active_source_count": 101,
"retired_source_count": 78,
"active_source_count": 102,
"retired_source_count": 77,
"systems_with_active_official": 61,
"systems_with_machine_readable_source": 61,
"systems": [
@@ -403,9 +403,9 @@
"category": "platforms",
"tier": "rolling-24m",
"source_total": 3,
"active_source_total": 1,
"retired_source_total": 2,
"official_active": 1,
"active_source_total": 2,
"retired_source_total": 1,
"official_active": 2,
"ecosystem_active": 0,
"research_active": 0,
"machine_readable_active": 1,
@@ -1328,27 +1328,15 @@
{
"system_id": "kibana",
"display_name": "Kibana",
"source_name": "Elastic Security Announcements",
"source_name": "Elastic Security Announcements RSS",
"bucket": "official_sources",
"kind": "html-links",
"retired_reason": "Elastic Security Announcements RSS is the official machine-readable replacement; keeping both active adds duplicate cold-start cost without added coverage.",
"kind": "rss-feed",
"retired_reason": "Elastic Discuss RSS is frequently rate-limited by cloud_10_secs_limit during monitor/source-health bursts; use Elastic Product Security plus NVD Kibana for stable active coverage.",
"replacement_sources": [
"Elastic Security Announcements RSS"
"Elastic Product Security",
"NVD Kibana"
],
"url": "https://discuss.elastic.co/c/announcements/security-announcements/31"
},
{
"system_id": "kibana",
"display_name": "Kibana",
"source_name": "NVD Kibana",
"bucket": "official_sources",
"kind": "nvd-search",
"retired_reason": "Elastic Security Announcements RSS provides an official machine-readable feed, replacing NVD public search.",
"replacement_sources": [
"Elastic Security Announcements",
"Elastic Security Announcements RSS"
],
"url": ""
"url": "https://discuss.elastic.co/c/announcements/security-announcements/31.rss"
},
{
"system_id": "koa",
@@ -2149,17 +2137,10 @@
},
{
"system_id": "kibana",
"retired_source": "Elastic Security Announcements",
"retired_source": "Elastic Security Announcements RSS",
"replacement_sources": [
"Elastic Security Announcements RSS"
]
},
{
"system_id": "kibana",
"retired_source": "NVD Kibana",
"replacement_sources": [
"Elastic Security Announcements",
"Elastic Security Announcements RSS"
"Elastic Product Security",
"NVD Kibana"
]
},
{

文件差异内容过多而无法显示 加载差异

文件差异内容过多而无法显示 加载差异

查看文件

@@ -87,7 +87,7 @@
<h1>当前架构库镜像</h1>
<div class="meta">工作台内置镜像页:当前架构库结构化数据镜像。</div>
<pre>{
&quot;generated_at&quot;: &quot;2026-03-21T13:36:59+00:00&quot;,
&quot;generated_at&quot;: &quot;2026-03-22T01:17:39+00:00&quot;,
&quot;title&quot;: &quot;当前架构库&quot;,
&quot;summary&quot;: &quot;工作台、控制面、数据层、授权边界与系统覆盖的当前真值视图。&quot;,
&quot;sections&quot;: [
@@ -115,11 +115,11 @@
},
{
&quot;label&quot;: &quot;已编目实体&quot;,
&quot;value&quot;: &quot;99&quot;
&quot;value&quot;: &quot;109&quot;
},
{
&quot;label&quot;: &quot;发现 backlog&quot;,
&quot;value&quot;: &quot;17&quot;
&quot;value&quot;: &quot;7&quot;
},
{
&quot;label&quot;: &quot;当前运行&quot;,
@@ -145,7 +145,7 @@
},
{
&quot;label&quot;: &quot;生成时间&quot;,
&quot;value&quot;: &quot;2026-03-21T13:36:59+00:00&quot;
&quot;value&quot;: &quot;2026-03-22T01:17:39+00:00&quot;
}
],
&quot;links&quot;: [
@@ -388,6 +388,11 @@
&quot;href&quot;: &quot;/docs/entity-discovery-backlog.html&quot;,
&quot;description&quot;: &quot;待编目 repo / 插件 / 包 backlog 与等待原因。&quot;
},
{
&quot;label&quot;: &quot;version sync report&quot;,
&quot;href&quot;: &quot;/docs/version-sync-report.html&quot;,
&quot;description&quot;: &quot;安全相关版本同步、source-gap 与版本驱动 lab enqueue 摘要。&quot;
},
{
&quot;label&quot;: &quot;repro-map 真值&quot;,
&quot;href&quot;: &quot;/docs/repro-map.html&quot;,
@@ -448,6 +453,21 @@
&quot;href&quot;: &quot;/data/entity-queues.json&quot;,
&quot;description&quot;: &quot;discovery/history/latest/workflow 四类队列摘要。&quot;
},
{
&quot;label&quot;: &quot;version-completeness.json&quot;,
&quot;href&quot;: &quot;/data/version-completeness.json&quot;,
&quot;description&quot;: &quot;最新版本同步覆盖、安全相关版本历史与 auto-promoted 统计。&quot;
},
{
&quot;label&quot;: &quot;version-backlog.json&quot;,
&quot;href&quot;: &quot;/data/version-backlog.json&quot;,
&quot;description&quot;: &quot;source-gap、未解决版本缺口与 lab pending 队列。&quot;
},
{
&quot;label&quot;: &quot;release-index.json&quot;,
&quot;href&quot;: &quot;/data/release-index.json&quot;,
&quot;description&quot;: &quot;安全相关版本记录索引真值。&quot;
},
{
&quot;label&quot;: &quot;runs.json&quot;,
&quot;href&quot;: &quot;/runs.json&quot;,
@@ -505,6 +525,18 @@
&quot;label&quot;: &quot;实体队列&quot;,
&quot;value&quot;: &quot;/data/entity-queues.json&quot;
},
{
&quot;label&quot;: &quot;版本完整度&quot;,
&quot;value&quot;: &quot;/data/version-completeness.json&quot;
},
{
&quot;label&quot;: &quot;版本 backlog&quot;,
&quot;value&quot;: &quot;/data/version-backlog.json&quot;
},
{
&quot;label&quot;: &quot;版本索引&quot;,
&quot;value&quot;: &quot;/data/release-index.json&quot;
},
{
&quot;label&quot;: &quot;默认入口&quot;,
&quot;value&quot;: &quot;/index.html&quot;
@@ -4302,7 +4334,7 @@
&quot;fields&quot;: [
{
&quot;label&quot;: &quot;官方来源&quot;,
&quot;value&quot;: &quot;Elastic Security Announcements\nElastic Security Announcements RSS\nNVD Kibana&quot;
&quot;value&quot;: &quot;Elastic Product Security\nElastic Security Announcements RSS\nNVD Kibana&quot;
},
{
&quot;label&quot;: &quot;生态来源&quot;,

查看文件

@@ -88,9 +88,9 @@
<div class="meta">工作台内置镜像页分层实体覆盖、history-full 完整度和 workflow 统计。</div>
<pre># 分层实体覆盖与完整度报告
- 生成时间: `2026-03-21T13:36:59+00:00`
- 已编目实体: `99`
- 待编目 backlog: `17`
- 生成时间: `2026-03-22T01:17:37+00:00`
- 已编目实体: `109`
- 待编目 backlog: `7`
- history-full 已完成: `40`
- latest green: `99`
- workflow 完整: `99`
@@ -110,7 +110,7 @@
| 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 |
| directus | 2 | 0 | 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 |
@@ -119,7 +119,7 @@
| 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 |
| ghost | 2 | 0 | 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 |
@@ -131,7 +131,7 @@
| 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 |
| magento-open-source | 2 | 0 | 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 |
@@ -141,19 +141,19 @@
| 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 |
| opencart | 2 | 0 | 1 | 0 | 1 | 0 |
| openmage | 2 | 0 | 1 | 0 | 1 | 0 |
| phpmyadmin | 1 | 0 | 1 | 0 | 1 | 0 |
| prestashop | 1 | 1 | 1 | 0 | 1 | 0 |
| prestashop | 2 | 0 | 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 |
| saleor | 2 | 0 | 1 | 0 | 1 | 0 |
| shopware | 2 | 0 | 1 | 0 | 1 | 0 |
| spring-boot | 2 | 0 | 2 | 1 | 2 | 0 |
| spring-framework | 1 | 0 | 1 | 0 | 1 | 0 |
| spring-security | 2 | 0 | 2 | 1 | 2 | 0 |
| strapi | 1 | 1 | 1 | 0 | 1 | 0 |
| strapi | 2 | 0 | 1 | 0 | 1 | 0 |
| sveltekit | 2 | 0 | 2 | 2 | 2 | 0 |
| symfony | 2 | 0 | 2 | 2 | 2 | 0 |
| traefik | 3 | 0 | 3 | 2 | 3 | 1 |
@@ -162,7 +162,7 @@
| 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 |
| woocommerce | 2 | 0 | 1 | 0 | 1 | 0 |
| wordpress | 1 | 0 | 1 | 0 | 1 | 0 |
</pre>
</div>

查看文件

@@ -88,28 +88,18 @@
<div class="meta">工作台内置镜像页:待编目 repo / 插件 / 包 backlog 与等待原因。</div>
<pre># 分层实体发现 Backlog
- 生成时间: `2026-03-21T13:36:59+00:00`
- 待编目数量: `17`
- 生成时间: `2026-03-22T01:17:37+00:00`
- 待编目数量: `7`
| 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 |
| gitea--repo-candidate--https-github-com-go-gitea-gitea | gitea | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/go-gitea/gitea/security/advisories |
| medusa--repo-candidate--https-github-com-medusajs-medusa | medusa | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/medusajs/medusa/security/advisories |
| nextjs--repo-candidate--https-github-com-vercel-next-js | nextjs | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/vercel/next.js/security/advisories |
| nuxt--repo-candidate--https-github-com-nuxt-nuxt | nuxt | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/nuxt/nuxt/security/advisories |
| react--repo-candidate--https-github-com-facebook-react | react | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/facebook/react/security/advisories |
| vite--repo-candidate--https-github-com-vitejs-vite | vite | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/vitejs/vite/security/advisories |
| vue--repo-candidate--https-github-com-vuejs-core | vue | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/vuejs/core/security |
</pre>
</div>
</main>

查看文件

@@ -476,27 +476,15 @@
{
&quot;system_id&quot;: &quot;kibana&quot;,
&quot;display_name&quot;: &quot;Kibana&quot;,
&quot;source_name&quot;: &quot;Elastic Security Announcements&quot;,
&quot;source_name&quot;: &quot;Elastic Security Announcements RSS&quot;,
&quot;bucket&quot;: &quot;official_sources&quot;,
&quot;kind&quot;: &quot;html-links&quot;,
&quot;retired_reason&quot;: &quot;Elastic Security Announcements RSS is the official machine-readable replacement; keeping both active adds duplicate cold-start cost without added coverage.&quot;,
&quot;kind&quot;: &quot;rss-feed&quot;,
&quot;retired_reason&quot;: &quot;Elastic Discuss RSS is frequently rate-limited by cloud_10_secs_limit during monitor/source-health bursts; use Elastic Product Security plus NVD Kibana for stable active coverage.&quot;,
&quot;replacement_sources&quot;: [
&quot;Elastic Security Announcements RSS&quot;
&quot;Elastic Product Security&quot;,
&quot;NVD Kibana&quot;
],
&quot;url&quot;: &quot;https://discuss.elastic.co/c/announcements/security-announcements/31&quot;
},
{
&quot;system_id&quot;: &quot;kibana&quot;,
&quot;display_name&quot;: &quot;Kibana&quot;,
&quot;source_name&quot;: &quot;NVD Kibana&quot;,
&quot;bucket&quot;: &quot;official_sources&quot;,
&quot;kind&quot;: &quot;nvd-search&quot;,
&quot;retired_reason&quot;: &quot;Elastic Security Announcements RSS provides an official machine-readable feed, replacing NVD public search.&quot;,
&quot;replacement_sources&quot;: [
&quot;Elastic Security Announcements&quot;,
&quot;Elastic Security Announcements RSS&quot;
],
&quot;url&quot;: &quot;&quot;
&quot;url&quot;: &quot;https://discuss.elastic.co/c/announcements/security-announcements/31.rss&quot;
},
{
&quot;system_id&quot;: &quot;koa&quot;,

查看文件

@@ -88,11 +88,11 @@
<div class="meta">工作台内置镜像页active/retired source、replacement map 与覆盖摘要。</div>
<pre># Source Catalog Audit
- generated_at: `2026-03-21T09:17:05+00:00`
- generated_at: `2026-03-22T01:17:13+00:00`
- systems: `62`
- sources: `179`
- active_sources: `101`
- retired_sources: `78`
- active_sources: `102`
- retired_sources: `77`
- systems_with_active_official: `61/62`
- systems_with_machine_readable_source: `61/62`
@@ -129,8 +129,7 @@
- `jenkins` `Jenkins Security Advisories` -&gt; replacements: `Jenkins Security Advisories RSS` | reason: Jenkins Security Advisories RSS is the official machine-readable replacement; keeping both active adds duplicate cold-start cost without added coverage.
- `jenkins` `NVD Jenkins` -&gt; replacements: `Jenkins Security Advisories, Jenkins Security Advisories RSS` | reason: Jenkins Security Advisories RSS provides an official machine-readable feed, replacing NVD public search.
- `joomla` `NVD Joomla` -&gt; replacements: `Joomla Security Centre, OSV Joomla` | reason: OSV Joomla CMS replaces NVD for machine-readable collection without public NVD throttling.
- `kibana` `Elastic Security Announcements` -&gt; replacements: `Elastic Security Announcements RSS` | reason: Elastic Security Announcements RSS is the official machine-readable replacement; keeping both active adds duplicate cold-start cost without added coverage.
- `kibana` `NVD Kibana` -&gt; replacements: `Elastic Security Announcements, Elastic Security Announcements RSS` | reason: Elastic Security Announcements RSS provides an official machine-readable feed, replacing NVD public search.
- `kibana` `Elastic Security Announcements RSS` -&gt; replacements: `Elastic Product Security, NVD Kibana` | reason: Elastic Discuss RSS is frequently rate-limited by cloud_10_secs_limit during monitor/source-health bursts; use Elastic Product Security plus NVD Kibana for stable active coverage.
- `koa` `GitHub Global Advisories` -&gt; replacements: `OSV Koa` | reason: Unauthenticated GHSA API requests are rate-limited in daily monitoring; OSV Koa remains the active replacement source.
- `laravel` `GitHub Global Advisories` -&gt; replacements: `OSV Laravel` | reason: Unauthenticated GitHub advisory API is quota-limited; OSV Laravel remains the active machine-readable source.
- `magento-open-source` `NVD Magento` -&gt; replacements: `Magento GitHub Advisories, OSV Magento Open Source` | reason: OSV Magento Open Source plus Magento GitHub advisories replace NVD public search for machine-readable collection.

查看文件

@@ -2460,16 +2460,16 @@ systems:
tier: rolling-24m
advisory_modes: [core, plugin]
official_sources:
- name: Elastic Security Announcements
- name: Elastic Product Security
kind: html-links
url: https://discuss.elastic.co/c/announcements/security-announcements/31
url: https://www.elastic.co/product-security
confidence: official
advisory_mode: core
keywords: [kibana, elastic, security]
max_items: 60
status: retired
retired_reason: Elastic Security Announcements RSS is the official machine-readable replacement; keeping both active adds duplicate cold-start cost without added coverage.
replacement_sources: [Elastic Security Announcements RSS]
max_items: 20
parser_hints:
include_url_patterns:
- &quot;https://discuss\\.elastic\\.co/c/announcements/security-announcements&quot;
- name: Elastic Security Announcements RSS
kind: rss-feed
url: https://discuss.elastic.co/c/announcements/security-announcements/31.rss
@@ -2477,15 +2477,18 @@ systems:
advisory_mode: core
keywords: [kibana, elastic, security]
max_items: 60
status: retired
retired_reason: Elastic Discuss RSS is frequently rate-limited by cloud_10_secs_limit during monitor/source-health bursts; use Elastic Product Security plus NVD Kibana for stable active coverage.
replacement_sources: [Elastic Product Security, NVD Kibana]
health_policy:
retries: 4
backoff_seconds: 3.5
- name: NVD Kibana
kind: nvd-search
keyword: Kibana
confidence: official
advisory_mode: core
results_per_page: 40
status: retired
retired_reason: Elastic Security Announcements RSS provides an official machine-readable feed, replacing NVD public search.
replacement_sources: [Elastic Security Announcements, Elastic Security Announcements RSS]
ecosystem_sources: []
research_sources: []
package_names: []

查看文件

@@ -88,17 +88,17 @@
<div class="meta">工作台内置镜像页89 条 advisory 最新完整度、family 矩阵与 ingest 健康度。</div>
<pre># 全库 Advisory 完整度报告
- 生成时间: `2026-03-21T13:36:59+00:00`
- 生成时间: `2026-03-22T01:17:39+00:00`
- 最新 advisory 完整度: `89/89` `verified-real`
- 合成验证数量: `0`
- 阻塞数量: `0`
- 人工/待补证据数量: `0`
- 完整度百分比: `100.0%`
- active source 全绿: `26/101`
- source open alerts: `75`
- 最近一次 source 全绿: `2026-03-20T15:45:58+00:00`
- 已编目实体: `99`
- 待编目 backlog: `17`
- active source 全绿: `102/102`
- source open alerts: `0`
- 最近一次 source 全绿: `2026-03-22T01:17:22+00:00`
- 已编目实体: `109`
- 待编目 backlog: `7`
## 系统覆盖矩阵
@@ -129,12 +129,10 @@
## Ingest / Source 健康度
- source failures: `2`
- active sources: `101`
- green sources: `26`
- open alerts: `75`
- directus::OSV Directus::network::HTTPSConnectionPool(host=&#x27;api.osv.dev&#x27;, port=443): Read timed out. (read timeout=30)
- moodle::OSV Moodle::network::HTTPSConnectionPool(host=&#x27;api.osv.dev&#x27;, port=443): Read timed out. (read timeout=30)
- source failures: `0`
- active sources: `102`
- green sources: `102`
- open alerts: `0`
## 剩余风险说明

查看文件

@@ -0,0 +1,170 @@
<!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">工作台内置镜像页安全相关版本历史、source-gap 与版本驱动 lab enqueue 摘要。</div>
<pre># 安全相关版本同步报告
- 生成时间: `2026-03-22T01:17:38+00:00`
- 已编目实体: `109`
- 最新版本已同步: `94`
- 版本 source-gap: `15`
- 安全相关版本记录: `6183`
- 存在安全版本历史的实体: `82`
- 自动升级实体: `10`
- 因版本变化触发 lab 入队: `0`
## 系统版本摘要
| 系统 | cataloged | latest synced | source-gap | security versions | auto-promoted |
| --- | ---: | ---: | ---: | ---: | ---: |
| adminer | 1 | 0 | 1 | 0 | 0 |
| adobe-commerce | 1 | 0 | 1 | 0 | 0 |
| angular | 2 | 2 | 0 | 18 | 0 |
| apache-httpd | 1 | 1 | 0 | 1 | 0 |
| apache-tomcat | 1 | 1 | 0 | 2 | 0 |
| aspnet-core | 1 | 0 | 1 | 0 | 0 |
| astro | 3 | 3 | 0 | 30 | 0 |
| caddy | 3 | 3 | 0 | 4 | 0 |
| directus | 2 | 2 | 0 | 2 | 1 |
| discourse | 1 | 1 | 0 | 78 | 0 |
| django | 2 | 2 | 0 | 182 | 0 |
| drupal | 1 | 1 | 0 | 74 | 0 |
| echo | 2 | 2 | 0 | 4 | 0 |
| esbuild | 2 | 2 | 0 | 2 | 0 |
| express | 1 | 0 | 1 | 0 | 0 |
| fastify | 2 | 2 | 0 | 2 | 0 |
| flask | 2 | 2 | 0 | 22 | 0 |
| ghost | 2 | 2 | 0 | 0 | 1 |
| gin | 2 | 2 | 0 | 2 | 0 |
| gitea | 1 | 0 | 1 | 0 | 0 |
| gitlab-ce | 1 | 1 | 0 | 612 | 0 |
| grafana | 1 | 0 | 1 | 0 | 0 |
| hapi | 2 | 2 | 0 | 4 | 0 |
| haproxy | 1 | 1 | 0 | 1 | 0 |
| jenkins | 1 | 0 | 1 | 0 | 0 |
| joomla | 1 | 1 | 0 | 5 | 0 |
| kibana | 1 | 0 | 1 | 0 | 0 |
| koa | 2 | 2 | 0 | 4 | 0 |
| laravel | 2 | 2 | 0 | 103 | 0 |
| magento-open-source | 2 | 2 | 0 | 6 | 1 |
| mattermost | 5 | 5 | 0 | 3792 | 0 |
| mediawiki | 1 | 1 | 0 | 252 | 0 |
| medusa | 1 | 0 | 1 | 0 | 0 |
| moodle | 1 | 0 | 1 | 0 | 0 |
| nestjs | 1 | 0 | 1 | 0 | 0 |
| nextjs | 2 | 2 | 0 | 168 | 0 |
| nginx | 1 | 0 | 1 | 0 | 0 |
| nodejs | 1 | 0 | 1 | 0 | 0 |
| nuxt | 2 | 2 | 0 | 11 | 0 |
| opencart | 2 | 2 | 0 | 4 | 1 |
| openmage | 2 | 2 | 0 | 0 | 1 |
| phpmyadmin | 1 | 1 | 0 | 0 | 0 |
| prestashop | 2 | 2 | 0 | 18 | 1 |
| rails | 2 | 2 | 0 | 102 | 0 |
| react | 3 | 3 | 0 | 18 | 0 |
| redmine | 1 | 1 | 0 | 0 | 0 |
| saleor | 2 | 2 | 0 | 0 | 1 |
| shopware | 2 | 2 | 0 | 0 | 1 |
| spring-boot | 2 | 2 | 0 | 22 | 0 |
| spring-framework | 1 | 0 | 1 | 0 | 0 |
| spring-security | 2 | 2 | 0 | 92 | 0 |
| strapi | 2 | 2 | 0 | 0 | 1 |
| sveltekit | 2 | 2 | 0 | 4 | 0 |
| symfony | 2 | 2 | 0 | 220 | 0 |
| traefik | 3 | 3 | 0 | 63 | 0 |
| undici | 3 | 3 | 0 | 25 | 0 |
| vite | 5 | 5 | 0 | 150 | 0 |
| vue | 2 | 2 | 0 | 2 | 0 |
| webpack | 1 | 0 | 1 | 0 | 0 |
| werkzeug | 2 | 2 | 0 | 22 | 0 |
| woocommerce | 2 | 2 | 0 | 6 | 1 |
| wordpress | 1 | 1 | 0 | 54 | 0 |
</pre>
</div>
</main>
</body>
</html>

文件差异内容过多而无法显示 加载差异

文件差异内容过多而无法显示 加载差异

文件差异内容过多而无法显示 加载差异

查看文件

@@ -1,8 +1,8 @@
# 分层实体覆盖与完整度报告
- 生成时间: `2026-03-21T13:36:59+00:00`
- 已编目实体: `99`
- 待编目 backlog: `17`
- 生成时间: `2026-03-22T01:17:37+00:00`
- 已编目实体: `109`
- 待编目 backlog: `7`
- history-full 已完成: `40`
- latest green: `99`
- workflow 完整: `99`
@@ -22,7 +22,7 @@
| 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 |
| directus | 2 | 0 | 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 |
@@ -31,7 +31,7 @@
| 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 |
| ghost | 2 | 0 | 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 |
@@ -43,7 +43,7 @@
| 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 |
| magento-open-source | 2 | 0 | 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 |
@@ -53,19 +53,19 @@
| 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 |
| opencart | 2 | 0 | 1 | 0 | 1 | 0 |
| openmage | 2 | 0 | 1 | 0 | 1 | 0 |
| phpmyadmin | 1 | 0 | 1 | 0 | 1 | 0 |
| prestashop | 1 | 1 | 1 | 0 | 1 | 0 |
| prestashop | 2 | 0 | 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 |
| saleor | 2 | 0 | 1 | 0 | 1 | 0 |
| shopware | 2 | 0 | 1 | 0 | 1 | 0 |
| spring-boot | 2 | 0 | 2 | 1 | 2 | 0 |
| spring-framework | 1 | 0 | 1 | 0 | 1 | 0 |
| spring-security | 2 | 0 | 2 | 1 | 2 | 0 |
| strapi | 1 | 1 | 1 | 0 | 1 | 0 |
| strapi | 2 | 0 | 1 | 0 | 1 | 0 |
| sveltekit | 2 | 0 | 2 | 2 | 2 | 0 |
| symfony | 2 | 0 | 2 | 2 | 2 | 0 |
| traefik | 3 | 0 | 3 | 2 | 3 | 1 |
@@ -74,5 +74,5 @@
| 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 |
| woocommerce | 2 | 0 | 1 | 0 | 1 | 0 |
| wordpress | 1 | 0 | 1 | 0 | 1 | 0 |

查看文件

@@ -1,7 +1,7 @@
{
"generated_at": "2026-03-21T13:36:59+00:00",
"cataloged_entity_total": 99,
"candidate_entity_total": 17,
"generated_at": "2026-03-22T01:17:37+00:00",
"cataloged_entity_total": 109,
"candidate_entity_total": 7,
"history_full_complete_count": 40,
"latest_green_count": 99,
"workflow_complete_count": 99,
@@ -220,9 +220,9 @@
{
"system_id": "directus",
"display_name": "Directus",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -232,17 +232,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "directus--repo-candidate--https-github-com-directus-directus",
"display_name": "directus / directus",
"entity_id": "directus--repo--directus-directus",
"entity_type": "repo",
"risk": "medium"
"display_name": "directus / directus",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "discourse",
@@ -457,9 +460,9 @@
{
"system_id": "ghost",
"display_name": "Ghost",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -469,17 +472,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "ghost--repo-candidate--https-github-com-tryghost-ghost",
"display_name": "TryGhost / Ghost",
"entity_id": "ghost--repo--tryghost-ghost",
"entity_type": "repo",
"risk": "medium"
"display_name": "TryGhost / Ghost",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "gin",
@@ -751,9 +757,9 @@
{
"system_id": "magento-open-source",
"display_name": "Magento Open Source",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -763,17 +769,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "magento-open-source--repo-candidate--https-github-com-magento-magento2",
"display_name": "magento / magento2",
"entity_id": "magento-open-source--repo--magento-magento2",
"entity_type": "repo",
"risk": "medium"
"display_name": "magento / magento2",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "mattermost",
@@ -1035,9 +1044,9 @@
{
"system_id": "opencart",
"display_name": "OpenCart",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1047,24 +1056,27 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "opencart--repo-candidate--https-github-com-opencart-opencart",
"display_name": "opencart / opencart",
"entity_id": "opencart--repo--opencart-opencart",
"entity_type": "repo",
"risk": "medium"
"display_name": "opencart / opencart",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "openmage",
"display_name": "OpenMage / Mage-OS",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1074,17 +1086,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "openmage--repo-candidate--https-github-com-openmage-magento-lts",
"display_name": "OpenMage / magento-lts",
"entity_id": "openmage--repo--openmage-magento-lts",
"entity_type": "repo",
"risk": "medium"
"display_name": "OpenMage / magento-lts",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "phpmyadmin",
@@ -1109,9 +1124,9 @@
{
"system_id": "prestashop",
"display_name": "PrestaShop",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1121,17 +1136,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "prestashop--repo-candidate--https-github-com-prestashop-prestashop",
"display_name": "PrestaShop / PrestaShop",
"entity_id": "prestashop--repo--prestashop-prestashop",
"entity_type": "repo",
"risk": "medium"
"display_name": "PrestaShop / PrestaShop",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "rails",
@@ -1231,9 +1249,9 @@
{
"system_id": "saleor",
"display_name": "Saleor",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1243,24 +1261,27 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "saleor--repo-candidate--https-github-com-saleor-saleor",
"display_name": "saleor / saleor",
"entity_id": "saleor--repo--saleor-saleor",
"entity_type": "repo",
"risk": "medium"
"display_name": "saleor / saleor",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "shopware",
"display_name": "Shopware",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1270,17 +1291,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "shopware--repo-candidate--https-github-com-shopware-shopware",
"display_name": "shopware / shopware",
"entity_id": "shopware--repo--shopware-shopware",
"entity_type": "repo",
"risk": "medium"
"display_name": "shopware / shopware",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "spring-boot",
@@ -1365,9 +1389,9 @@
{
"system_id": "strapi",
"display_name": "Strapi",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1377,17 +1401,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "strapi--repo-candidate--https-github-com-strapi-strapi",
"display_name": "strapi / strapi",
"entity_id": "strapi--repo--strapi-strapi",
"entity_type": "repo",
"risk": "medium"
"display_name": "strapi / strapi",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "sveltekit",
@@ -1681,9 +1708,9 @@
{
"system_id": "woocommerce",
"display_name": "WooCommerce",
"cataloged_entity_total": 1,
"child_entity_total": 0,
"candidate_entity_total": 1,
"cataloged_entity_total": 2,
"child_entity_total": 1,
"candidate_entity_total": 0,
"workflow_complete_count": 1,
"version_mapped_count": 0,
"official_source_covered_count": 1,
@@ -1693,17 +1720,20 @@
"workflow_gap_entity_count": 0,
"plugin_total": 0,
"entity_type_counts": {
"system": 1
"system": 1,
"repo": 1
},
"top_entities": [],
"backlog_preview": [
"top_entities": [
{
"candidate_id": "woocommerce--repo-candidate--https-github-com-woocommerce-woocommerce",
"display_name": "woocommerce / woocommerce",
"entity_id": "woocommerce--repo--woocommerce-woocommerce",
"entity_type": "repo",
"risk": "medium"
"display_name": "woocommerce / woocommerce",
"advisory_count": 0,
"history_backfill_status": "pending",
"latest_sync_status": "pending"
}
]
],
"backlog_preview": []
},
{
"system_id": "wordpress",
@@ -1727,9 +1757,9 @@
}
],
"queues": {
"discovery_queue": 17,
"history_queue": 17,
"latest_queue": 0,
"discovery_queue": 7,
"history_queue": 27,
"latest_queue": 10,
"workflow_queue": 2176
}
}

查看文件

@@ -1,50 +1,21 @@
[
{
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/go-gitea/gitea/security/advisories",
"source_name": "GitHub Gitea Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/go-gitea/gitea",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -53,10 +24,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/medusajs/medusa/security/advisories",
"source_name": "GitHub Medusa Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/medusajs/medusa",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -65,10 +43,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vercel/next.js/security/advisories",
"source_name": "GitHub Next.js Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vercel/next.js",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -77,46 +62,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/nuxt/nuxt/security/advisories",
"source_name": "Nuxt Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/nuxt/nuxt",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -125,46 +81,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/facebook/react/security/advisories",
"source_name": "GitHub React Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/facebook/react",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -173,10 +100,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vitejs/vite/security/advisories",
"source_name": "Vite Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vitejs/vite",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -185,22 +119,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vuejs/core/security",
"source_name": "Vue Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vuejs/core",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
}
]

查看文件

@@ -1,24 +1,14 @@
# 分层实体发现 Backlog
- 生成时间: `2026-03-21T13:36:59+00:00`
- 待编目数量: `17`
- 生成时间: `2026-03-22T01:17:37+00:00`
- 待编目数量: `7`
| 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 |
| gitea--repo-candidate--https-github-com-go-gitea-gitea | gitea | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/go-gitea/gitea/security/advisories |
| medusa--repo-candidate--https-github-com-medusajs-medusa | medusa | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/medusajs/medusa/security/advisories |
| nextjs--repo-candidate--https-github-com-vercel-next-js | nextjs | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/vercel/next.js/security/advisories |
| nuxt--repo-candidate--https-github-com-nuxt-nuxt | nuxt | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/nuxt/nuxt/security/advisories |
| react--repo-candidate--https-github-com-facebook-react | react | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/facebook/react/security/advisories |
| vite--repo-candidate--https-github-com-vitejs-vite | vite | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/vitejs/vite/security/advisories |
| vue--repo-candidate--https-github-com-vuejs-core | vue | repo | medium | source catalog exposed a stable security-related object that is not yet cataloged as an entity | 确认是否应升级为 cataloged repo/plugin/package 实体并补齐安全相关版本与历史漏洞 | https://github.com/vuejs/core/security |

查看文件

@@ -1,54 +1,25 @@
{
"generated_at": "2026-03-21T13:36:59+00:00",
"generated_at": "2026-03-22T01:17:37+00:00",
"discovery_queue": {
"count": 17,
"count": 7,
"items": [
{
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/go-gitea/gitea/security/advisories",
"source_name": "GitHub Gitea Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/go-gitea/gitea",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -57,10 +28,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/medusajs/medusa/security/advisories",
"source_name": "GitHub Medusa Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/medusajs/medusa",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -69,10 +47,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vercel/next.js/security/advisories",
"source_name": "GitHub Next.js Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vercel/next.js",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -81,46 +66,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/nuxt/nuxt/security/advisories",
"source_name": "Nuxt Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/nuxt/nuxt",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -129,46 +85,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/facebook/react/security/advisories",
"source_name": "GitHub React Advisories",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/facebook/react",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -177,10 +104,17 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vitejs/vite/security/advisories",
"source_name": "Vite Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vitejs/vite",
"package_registry": "",
"marketplace_url": "",
"risk": "medium",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5386\u53f2\u6f0f\u6d1e",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
},
{
@@ -189,28 +123,23 @@
"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",
"reason": "source catalog exposed a stable security-related object that is not yet cataloged as an entity",
"source": "https://github.com/vuejs/core/security",
"source_name": "Vue Security",
"source_confidence": "official",
"source_bucket": "official_sources",
"auto_catalog": true,
"repo_url": "https://github.com/vuejs/core",
"package_registry": "",
"marketplace_url": "",
"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",
"waiting_for": "\u786e\u8ba4\u662f\u5426\u5e94\u5347\u7ea7\u4e3a cataloged repo/plugin/package \u5b9e\u4f53\u5e76\u8865\u9f50\u5b89\u5168\u76f8\u5173\u7248\u672c\u4e0e\u5386\u53f2\u6f0f\u6d1e",
"canonical_id": ""
}
]
},
"history_queue": {
"count": 17,
"count": 27,
"items": [
{
"entity_id": "caddy--extension--github-com-caddyserver-caddy-v2",
@@ -330,12 +259,153 @@
"root_system_id": "werkzeug",
"history_policy": "history-full",
"history_backfill_status": "seeded"
},
{
"entity_id": "directus--repo--directus-directus",
"display_name": "directus / directus",
"root_system_id": "directus",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "ghost--repo--tryghost-ghost",
"display_name": "TryGhost / Ghost",
"root_system_id": "ghost",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "magento-open-source--repo--magento-magento2",
"display_name": "magento / magento2",
"root_system_id": "magento-open-source",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "opencart--repo--opencart-opencart",
"display_name": "opencart / opencart",
"root_system_id": "opencart",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "openmage--repo--openmage-magento-lts",
"display_name": "OpenMage / magento-lts",
"root_system_id": "openmage",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "prestashop--repo--prestashop-prestashop",
"display_name": "PrestaShop / PrestaShop",
"root_system_id": "prestashop",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "saleor--repo--saleor-saleor",
"display_name": "saleor / saleor",
"root_system_id": "saleor",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "shopware--repo--shopware-shopware",
"display_name": "shopware / shopware",
"root_system_id": "shopware",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "strapi--repo--strapi-strapi",
"display_name": "strapi / strapi",
"root_system_id": "strapi",
"history_policy": "history-full",
"history_backfill_status": "pending"
},
{
"entity_id": "woocommerce--repo--woocommerce-woocommerce",
"display_name": "woocommerce / woocommerce",
"root_system_id": "woocommerce",
"history_policy": "history-full",
"history_backfill_status": "pending"
}
]
},
"latest_queue": {
"count": 0,
"items": []
"count": 10,
"items": [
{
"entity_id": "directus--repo--directus-directus",
"display_name": "directus / directus",
"root_system_id": "directus",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "ghost--repo--tryghost-ghost",
"display_name": "TryGhost / Ghost",
"root_system_id": "ghost",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "magento-open-source--repo--magento-magento2",
"display_name": "magento / magento2",
"root_system_id": "magento-open-source",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "opencart--repo--opencart-opencart",
"display_name": "opencart / opencart",
"root_system_id": "opencart",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "openmage--repo--openmage-magento-lts",
"display_name": "OpenMage / magento-lts",
"root_system_id": "openmage",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "prestashop--repo--prestashop-prestashop",
"display_name": "PrestaShop / PrestaShop",
"root_system_id": "prestashop",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "saleor--repo--saleor-saleor",
"display_name": "saleor / saleor",
"root_system_id": "saleor",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "shopware--repo--shopware-shopware",
"display_name": "shopware / shopware",
"root_system_id": "shopware",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "strapi--repo--strapi-strapi",
"display_name": "strapi / strapi",
"root_system_id": "strapi",
"latest_sync_status": "pending",
"last_synced_at": ""
},
{
"entity_id": "woocommerce--repo--woocommerce-woocommerce",
"display_name": "woocommerce / woocommerce",
"root_system_id": "woocommerce",
"latest_sync_status": "pending",
"last_synced_at": ""
}
]
},
"workflow_queue": {
"count": 2176,

文件差异内容过多而无法显示 加载差异

查看文件

@@ -1,18 +1,13 @@
# 最新同步摘要
- 渲染时间: `2026-03-21T13:36:59+00:00`
- 渲染时间: `2026-03-22T01:17:38+00:00`
- 系统数量: `62`
- Advisory 数量: `2358`
- 已编目实体数量: `99`
- 待编目 backlog 数量: `17`
- 已编目实体数量: `109`
- 待编目 backlog 数量: `7`
- 重点 Markdown 数量: `158`
- Run Bundle 数量: `89`
- 新增记录: `3`
- 新增记录: `0`
- 更新记录: `0`
- Triage 数量: `1175`
- 失败的 source adapter: `2`
## 失败列表
- directus::OSV Directus::network::HTTPSConnectionPool(host='api.osv.dev', port=443): Read timed out. (read timeout=30)
- moodle::OSV Moodle::network::HTTPSConnectionPool(host='api.osv.dev', port=443): Read timed out. (read timeout=30)
- 失败的 source adapter: `0`

查看文件

@@ -1,24 +1,21 @@
{
"generated_at": "2026-03-21T12:51:08+00:00",
"active_source_count": 101,
"green_source_count": 26,
"source_failure_count": 75,
"open_alert_count": 75,
"resolved_alert_count": 26,
"last_fully_green_run": "2026-03-20T15:45:58+00:00",
"generated_at": "2026-03-22T01:17:22+00:00",
"active_source_count": 102,
"green_source_count": 102,
"source_failure_count": 0,
"open_alert_count": 0,
"resolved_alert_count": 101,
"last_fully_green_run": "2026-03-22T01:17:22+00:00",
"source_catalog": {
"system_count": 62,
"source_count": 179,
"retired_source_count": 78
"retired_source_count": 77
},
"ingest": {
"new_count": 3,
"new_count": 0,
"updated_count": 0,
"failure_count": 2,
"systems_touched": [
"spring-security",
"traefik"
]
"failure_count": 0,
"systems_touched": []
},
"validation": {
"passed": true,
@@ -26,11 +23,25 @@
"errors": []
},
"entity_coverage": {
"cataloged_entity_total": 99,
"candidate_entity_total": 17,
"cataloged_entity_total": 109,
"candidate_entity_total": 7,
"history_full_complete_count": 40,
"workflow_complete_count": 99,
"version_mapped_count": 51,
"official_source_covered_count": 99
},
"version_coverage": {
"cataloged_entity_total": 109,
"latest_version_synced_count": 94,
"source_gap_count": 15,
"security_version_total": 6183,
"security_version_entity_count": 82,
"auto_promoted_entity_count": 10,
"lab_enqueued_count": 0
},
"lab_enqueue": {
"enqueued": 0,
"queue_total": 2358,
"pending_count": 0
}
}

文件差异内容过多而无法显示 加载差异

查看文件

@@ -388,27 +388,15 @@
{
"system_id": "kibana",
"display_name": "Kibana",
"source_name": "Elastic Security Announcements",
"source_name": "Elastic Security Announcements RSS",
"bucket": "official_sources",
"kind": "html-links",
"retired_reason": "Elastic Security Announcements RSS is the official machine-readable replacement; keeping both active adds duplicate cold-start cost without added coverage.",
"kind": "rss-feed",
"retired_reason": "Elastic Discuss RSS is frequently rate-limited by cloud_10_secs_limit during monitor/source-health bursts; use Elastic Product Security plus NVD Kibana for stable active coverage.",
"replacement_sources": [
"Elastic Security Announcements RSS"
"Elastic Product Security",
"NVD Kibana"
],
"url": "https://discuss.elastic.co/c/announcements/security-announcements/31"
},
{
"system_id": "kibana",
"display_name": "Kibana",
"source_name": "NVD Kibana",
"bucket": "official_sources",
"kind": "nvd-search",
"retired_reason": "Elastic Security Announcements RSS provides an official machine-readable feed, replacing NVD public search.",
"replacement_sources": [
"Elastic Security Announcements",
"Elastic Security Announcements RSS"
],
"url": ""
"url": "https://discuss.elastic.co/c/announcements/security-announcements/31.rss"
},
{
"system_id": "koa",

查看文件

@@ -1,46 +1,14 @@
{
"generated_at": "2026-03-21T13:36:59+00:00",
"generated_at": "2026-03-22T01:17:38+00:00",
"system_count": 62,
"advisory_count": 2358,
"cataloged_entity_total": 99,
"candidate_entity_total": 17,
"cataloged_entity_total": 109,
"candidate_entity_total": 7,
"markdown_count": 158,
"new_count": 3,
"new_count": 0,
"updated_count": 0,
"systems_touched": [
"spring-security",
"traefik"
],
"systems_touched": [],
"triage_count": 1175,
"run_bundle_count": 89,
"failures": [
{
"system_id": "directus",
"display_name": "Directus",
"source_name": "OSV Directus",
"source_kind": "osv-batch",
"source_bucket": "official_sources",
"category": "network",
"exception": "ReadTimeout",
"message": "HTTPSConnectionPool(host='api.osv.dev', port=443): Read timed out. (read timeout=30)",
"status_code": null,
"url": "",
"summary": "directus::OSV Directus::network::HTTPSConnectionPool(host='api.osv.dev', port=443): Read timed out. (read timeout=30)",
"elapsed_seconds": 92.294
},
{
"system_id": "moodle",
"display_name": "Moodle",
"source_name": "OSV Moodle",
"source_kind": "osv-batch",
"source_bucket": "ecosystem_sources",
"category": "network",
"exception": "ReadTimeout",
"message": "HTTPSConnectionPool(host='api.osv.dev', port=443): Read timed out. (read timeout=30)",
"status_code": null,
"url": "",
"summary": "moodle::OSV Moodle::network::HTTPSConnectionPool(host='api.osv.dev', port=443): Read timed out. (read timeout=30)",
"elapsed_seconds": 92.38
}
]
"failures": []
}

查看文件

@@ -1,9 +1,9 @@
{
"generated_at": "2026-03-21T09:17:05+00:00",
"generated_at": "2026-03-22T01:17:13+00:00",
"system_count": 62,
"source_count": 179,
"active_source_count": 101,
"retired_source_count": 78,
"active_source_count": 102,
"retired_source_count": 77,
"systems_with_active_official": 61,
"systems_with_machine_readable_source": 61,
"systems": [
@@ -403,9 +403,9 @@
"category": "platforms",
"tier": "rolling-24m",
"source_total": 3,
"active_source_total": 1,
"retired_source_total": 2,
"official_active": 1,
"active_source_total": 2,
"retired_source_total": 1,
"official_active": 2,
"ecosystem_active": 0,
"research_active": 0,
"machine_readable_active": 1,
@@ -1328,27 +1328,15 @@
{
"system_id": "kibana",
"display_name": "Kibana",
"source_name": "Elastic Security Announcements",
"source_name": "Elastic Security Announcements RSS",
"bucket": "official_sources",
"kind": "html-links",
"retired_reason": "Elastic Security Announcements RSS is the official machine-readable replacement; keeping both active adds duplicate cold-start cost without added coverage.",
"kind": "rss-feed",
"retired_reason": "Elastic Discuss RSS is frequently rate-limited by cloud_10_secs_limit during monitor/source-health bursts; use Elastic Product Security plus NVD Kibana for stable active coverage.",
"replacement_sources": [
"Elastic Security Announcements RSS"
"Elastic Product Security",
"NVD Kibana"
],
"url": "https://discuss.elastic.co/c/announcements/security-announcements/31"
},
{
"system_id": "kibana",
"display_name": "Kibana",
"source_name": "NVD Kibana",
"bucket": "official_sources",
"kind": "nvd-search",
"retired_reason": "Elastic Security Announcements RSS provides an official machine-readable feed, replacing NVD public search.",
"replacement_sources": [
"Elastic Security Announcements",
"Elastic Security Announcements RSS"
],
"url": ""
"url": "https://discuss.elastic.co/c/announcements/security-announcements/31.rss"
},
{
"system_id": "koa",
@@ -2149,17 +2137,10 @@
},
{
"system_id": "kibana",
"retired_source": "Elastic Security Announcements",
"retired_source": "Elastic Security Announcements RSS",
"replacement_sources": [
"Elastic Security Announcements RSS"
]
},
{
"system_id": "kibana",
"retired_source": "NVD Kibana",
"replacement_sources": [
"Elastic Security Announcements",
"Elastic Security Announcements RSS"
"Elastic Product Security",
"NVD Kibana"
]
},
{

查看文件

@@ -1,10 +1,10 @@
# Source Catalog Audit
- generated_at: `2026-03-21T09:17:05+00:00`
- generated_at: `2026-03-22T01:17:13+00:00`
- systems: `62`
- sources: `179`
- active_sources: `101`
- retired_sources: `78`
- active_sources: `102`
- retired_sources: `77`
- systems_with_active_official: `61/62`
- systems_with_machine_readable_source: `61/62`
@@ -41,8 +41,7 @@
- `jenkins` `Jenkins Security Advisories` -> replacements: `Jenkins Security Advisories RSS` | reason: Jenkins Security Advisories RSS is the official machine-readable replacement; keeping both active adds duplicate cold-start cost without added coverage.
- `jenkins` `NVD Jenkins` -> replacements: `Jenkins Security Advisories, Jenkins Security Advisories RSS` | reason: Jenkins Security Advisories RSS provides an official machine-readable feed, replacing NVD public search.
- `joomla` `NVD Joomla` -> replacements: `Joomla Security Centre, OSV Joomla` | reason: OSV Joomla CMS replaces NVD for machine-readable collection without public NVD throttling.
- `kibana` `Elastic Security Announcements` -> replacements: `Elastic Security Announcements RSS` | reason: Elastic Security Announcements RSS is the official machine-readable replacement; keeping both active adds duplicate cold-start cost without added coverage.
- `kibana` `NVD Kibana` -> replacements: `Elastic Security Announcements, Elastic Security Announcements RSS` | reason: Elastic Security Announcements RSS provides an official machine-readable feed, replacing NVD public search.
- `kibana` `Elastic Security Announcements RSS` -> replacements: `Elastic Product Security, NVD Kibana` | reason: Elastic Discuss RSS is frequently rate-limited by cloud_10_secs_limit during monitor/source-health bursts; use Elastic Product Security plus NVD Kibana for stable active coverage.
- `koa` `GitHub Global Advisories` -> replacements: `OSV Koa` | reason: Unauthenticated GHSA API requests are rate-limited in daily monitoring; OSV Koa remains the active replacement source.
- `laravel` `GitHub Global Advisories` -> replacements: `OSV Laravel` | reason: Unauthenticated GitHub advisory API is quota-limited; OSV Laravel remains the active machine-readable source.
- `magento-open-source` `NVD Magento` -> replacements: `Magento GitHub Advisories, OSV Magento Open Source` | reason: OSV Magento Open Source plus Magento GitHub advisories replace NVD public search for machine-readable collection.

文件差异内容过多而无法显示 加载差异

文件差异内容过多而无法显示 加载差异

文件差异内容过多而无法显示 加载差异

查看文件

@@ -0,0 +1,77 @@
# 安全相关版本同步报告
- 生成时间: `2026-03-22T01:17:38+00:00`
- 已编目实体: `109`
- 最新版本已同步: `94`
- 版本 source-gap: `15`
- 安全相关版本记录: `6183`
- 存在安全版本历史的实体: `82`
- 自动升级实体: `10`
- 因版本变化触发 lab 入队: `0`
## 系统版本摘要
| 系统 | cataloged | latest synced | source-gap | security versions | auto-promoted |
| --- | ---: | ---: | ---: | ---: | ---: |
| adminer | 1 | 0 | 1 | 0 | 0 |
| adobe-commerce | 1 | 0 | 1 | 0 | 0 |
| angular | 2 | 2 | 0 | 18 | 0 |
| apache-httpd | 1 | 1 | 0 | 1 | 0 |
| apache-tomcat | 1 | 1 | 0 | 2 | 0 |
| aspnet-core | 1 | 0 | 1 | 0 | 0 |
| astro | 3 | 3 | 0 | 30 | 0 |
| caddy | 3 | 3 | 0 | 4 | 0 |
| directus | 2 | 2 | 0 | 2 | 1 |
| discourse | 1 | 1 | 0 | 78 | 0 |
| django | 2 | 2 | 0 | 182 | 0 |
| drupal | 1 | 1 | 0 | 74 | 0 |
| echo | 2 | 2 | 0 | 4 | 0 |
| esbuild | 2 | 2 | 0 | 2 | 0 |
| express | 1 | 0 | 1 | 0 | 0 |
| fastify | 2 | 2 | 0 | 2 | 0 |
| flask | 2 | 2 | 0 | 22 | 0 |
| ghost | 2 | 2 | 0 | 0 | 1 |
| gin | 2 | 2 | 0 | 2 | 0 |
| gitea | 1 | 0 | 1 | 0 | 0 |
| gitlab-ce | 1 | 1 | 0 | 612 | 0 |
| grafana | 1 | 0 | 1 | 0 | 0 |
| hapi | 2 | 2 | 0 | 4 | 0 |
| haproxy | 1 | 1 | 0 | 1 | 0 |
| jenkins | 1 | 0 | 1 | 0 | 0 |
| joomla | 1 | 1 | 0 | 5 | 0 |
| kibana | 1 | 0 | 1 | 0 | 0 |
| koa | 2 | 2 | 0 | 4 | 0 |
| laravel | 2 | 2 | 0 | 103 | 0 |
| magento-open-source | 2 | 2 | 0 | 6 | 1 |
| mattermost | 5 | 5 | 0 | 3792 | 0 |
| mediawiki | 1 | 1 | 0 | 252 | 0 |
| medusa | 1 | 0 | 1 | 0 | 0 |
| moodle | 1 | 0 | 1 | 0 | 0 |
| nestjs | 1 | 0 | 1 | 0 | 0 |
| nextjs | 2 | 2 | 0 | 168 | 0 |
| nginx | 1 | 0 | 1 | 0 | 0 |
| nodejs | 1 | 0 | 1 | 0 | 0 |
| nuxt | 2 | 2 | 0 | 11 | 0 |
| opencart | 2 | 2 | 0 | 4 | 1 |
| openmage | 2 | 2 | 0 | 0 | 1 |
| phpmyadmin | 1 | 1 | 0 | 0 | 0 |
| prestashop | 2 | 2 | 0 | 18 | 1 |
| rails | 2 | 2 | 0 | 102 | 0 |
| react | 3 | 3 | 0 | 18 | 0 |
| redmine | 1 | 1 | 0 | 0 | 0 |
| saleor | 2 | 2 | 0 | 0 | 1 |
| shopware | 2 | 2 | 0 | 0 | 1 |
| spring-boot | 2 | 2 | 0 | 22 | 0 |
| spring-framework | 1 | 0 | 1 | 0 | 0 |
| spring-security | 2 | 2 | 0 | 92 | 0 |
| strapi | 2 | 2 | 0 | 0 | 1 |
| sveltekit | 2 | 2 | 0 | 4 | 0 |
| symfony | 2 | 2 | 0 | 220 | 0 |
| traefik | 3 | 3 | 0 | 63 | 0 |
| undici | 3 | 3 | 0 | 25 | 0 |
| vite | 5 | 5 | 0 | 150 | 0 |
| vue | 2 | 2 | 0 | 2 | 0 |
| webpack | 1 | 0 | 1 | 0 | 0 |
| werkzeug | 2 | 2 | 0 | 22 | 0 |
| woocommerce | 2 | 2 | 0 | 6 | 1 |
| wordpress | 1 | 1 | 0 | 54 | 0 |