@@ -45,44 +45,45 @@ Version Guard implements a **two-stage detection pipeline**:
4545```
4646
4747** Key Components:**
48- - ** Inventory Sources** : Wiz (multi-cloud scanning), mock sources for testing
49- - ** EOL Providers** : AWS APIs (RDS, EKS) + endoflife.date (fallback)
50- - ** Detectors** : Resource-specific detection logic (Aurora, EKS currently implemented)
48+ - ** Inventory Sources** : [ Wiz] ( https://wiz.io ) saved reports for resource discovery (multi-cloud)
49+ - ** EOL Data** : [ endoflife.date] ( https://endoflife.date ) API — no cloud provider credentials needed
5150- ** Classification** : Red (EOL/deprecated), Yellow (extended support/approaching EOL), Green (current)
5251- ** S3 Snapshots** : Versioned JSON storage for audit trail and downstream consumption
5352- ** gRPC API** : Query interface for compliance dashboards
5453
5554## ✨ Features
5655
5756- ✅ ** Multi-Cloud Inventory** : Wiz integration for AWS, GCP, Azure resource discovery
58- - ✅ ** Hybrid EOL Data** : AWS native APIs + endoflife.date for comprehensive coverage
57+ - ✅ ** Open EOL Data** : All EOL data from [ endoflife.date] ( https://endoflife.date ) — no cloud provider credentials needed
5958- ✅ ** Parallel Detection** : Temporal-based workflows for scalable scanning
6059- ✅ ** Versioned Snapshots** : S3 storage with full audit history
61- - ✅ ** gRPC Query API ** : 3 endpoints for compliance scoring, finding details, fleet summaries
60+ - ✅ ** Local Development ** : Full docker-compose setup with MinIO (S3) and Temporal
6261- ✅ ** Extensible Architecture** : Plugin your own emitters for issue tracking, dashboards, notifications
6362
6463## 📦 Supported Resources
6564
66- Currently implemented:
67- - ** Aurora** (RDS MySQL/PostgreSQL) - AWS RDS EOL API + Wiz inventory
68- - ** EKS** (Kubernetes) - AWS EKS API + endoflife.date (hybrid) + Wiz inventory
69-
70- Easily extensible to:
71- - ElastiCache (Redis/Valkey/Memcached)
72- - OpenSearch
73- - Lambda (Node.js, Python, Java)
74- - Cloud SQL (GCP)
75- - GKE (GCP)
76- - Azure resources
65+ | Resource | Inventory | EOL Source | Code | Status |
66+ | ----------| -----------| ------------| ------| --------|
67+ | ** EKS** (Kubernetes) | Wiz | [ amazon-eks] ( https://endoflife.date/amazon-eks ) | ✅ Implemented | ✅ Working |
68+ | ** ElastiCache** (Redis/Valkey) | Wiz | [ amazon-elasticache-redis] ( https://endoflife.date/amazon-elasticache-redis ) , [ valkey] ( https://endoflife.date/valkey ) | ✅ Implemented | ✅ Working |
69+ | ** Aurora PostgreSQL** | Wiz | [ amazon-aurora-postgresql] ( https://endoflife.date/amazon-aurora-postgresql ) | ✅ Implemented | 🔜 Needs Wiz report with PostgreSQL data |
70+ | ** Aurora MySQL** | Wiz | [ amazon-aurora-mysql] ( https://endoflife.date/amazon-aurora-mysql ) | ✅ Implemented | 🔜 EOL data pending [ endoflife.date#9534] ( https://github.com/endoflife-date/endoflife.date/pull/9534 ) |
71+ | ** RDS MySQL** | — | [ amazon-rds-mysql] ( https://endoflife.date/amazon-rds-mysql ) | ❌ Needs Wiz report | 📋 Planned |
72+ | ** RDS PostgreSQL** | — | [ amazon-rds-postgresql] ( https://endoflife.date/amazon-rds-postgresql ) | ❌ Needs Wiz report | 📋 Planned |
73+ | ** OpenSearch** | — | [ amazon-opensearch] ( https://endoflife.date/amazon-opensearch ) | ❌ Needs Wiz report | 📋 Planned |
74+ | ** Lambda** | — | [ aws-lambda] ( https://endoflife.date/aws-lambda ) | ❌ Needs Wiz report | 📋 Planned |
75+
76+ Adding a new resource type requires:
77+ 1 . A Wiz saved report + inventory source (~ 100 lines)
78+ 2 . One line in ` ProductMapping ` to map the engine name to endoflife.date
7779
7880## 🚀 Quick Start
7981
8082### Prerequisites
8183
8284- ** Go 1.24+**
83- - ** Docker** (for local Temporal server)
84- - ** AWS credentials** (for EOL APIs - optional but recommended)
85- - ** Wiz API access** (optional - falls back to mock data)
85+ - ** Docker** (for docker-compose local setup)
86+ - ** Wiz API access** (optional — falls back to mock data)
8687
8788### Installation
8889
@@ -150,11 +151,13 @@ make dev
150151### Trigger a Scan
151152
152153``` bash
153- # Via Temporal CLI
154- temporal workflow start \
154+ # Via Temporal CLI (from inside the temporal container if using docker-compose)
155+ docker compose exec temporal temporal workflow start \
155156 --task-queue version-guard-detection \
156- --type VersionGuardOrchestratorWorkflow \
157- --input ' {}'
157+ --type OrchestratorWorkflow \
158+ --input ' {}' \
159+ --address localhost:7233 \
160+ --namespace version-guard-dev
158161
159162# Or via the Temporal Web UI at http://localhost:8233 → Start Workflow
160163```
@@ -196,7 +199,7 @@ Version Guard is configured via environment variables or CLI flags:
196199| ` TEMPORAL_NAMESPACE ` | Temporal namespace | ` version-guard-dev ` |
197200| ` GRPC_PORT ` | gRPC service port | ` 8080 ` |
198201| ` S3_BUCKET ` | S3 bucket for snapshots | ` version-guard-snapshots ` |
199- | ` AWS_REGION ` | AWS region for EOL APIs | ` us-west-2 ` |
202+ | ` AWS_REGION ` | AWS region ( for S3 snapshots) | ` us-west-2 ` |
200203| ` WIZ_CLIENT_ID_SECRET ` | Wiz client ID (optional) | - |
201204| ` WIZ_CLIENT_SECRET_SECRET ` | Wiz client secret (optional) | - |
202205| ` TAG_APP_KEYS ` | Comma-separated AWS tag keys for app/service | ` app,application,service ` |
@@ -338,8 +341,7 @@ Version Guard is maintained by Block, Inc. and the open-source community.
338341Special thanks to:
339342- [ Temporal] ( https://temporal.io ) for the workflow orchestration framework
340343- [ Wiz] ( https://wiz.io ) for multi-cloud security scanning
341- - [ endoflife.date] ( https://endoflife.date ) for EOL data API
342- - AWS for native EOL APIs (RDS, EKS)
344+ - [ endoflife.date] ( https://endoflife.date ) for open EOL data
343345
344346---
345347
0 commit comments