BLT-OWASP-metadata¶
Unified metadata aggregation system for OWASP projects and chapters
- Repository: OWASP-BLT/BLT-OWASP-metadata
- Live Dashboard: owasp-blt.github.io/OWASP-metadata
- Language: Python, JavaScript
- License: Apache 2.0
Overview¶
BLT-OWASP-metadata is a unified metadata aggregation system for OWASP projects and chapters. It standardizes data across the OWASP repository ecosystem without requiring major changes to existing repositories, by leveraging the existing Jekyll front matter in index.md files.
Key Features¶
- π Metadata Explorer β Browse and search all OWASP repositories
- π Analytics Dashboard β Visualize metadata coverage and trends
- πΊοΈ Project Wayfinder β Visual overview by type and maturity
- π SDLC Integration Chart β OWASP projects mapped to Software Development Lifecycle phases
- π Dark/Light Theme Toggle β Comfortable viewing in any environment
- π Advanced Filtering β Filter by project type, maturity level, and metadata fields
- π₯ Export Functionality β Download data as CSV or diagrams as SVG
- β‘ Weekly Auto-updates β Data refreshes weekly via GitHub Actions
Purpose¶
- Aggregate Metadata β Collect and standardize metadata from OWASP repositories that use Jekyll-based
index.mdfiles with YAML front matter - Enable Discovery β Power the OWASP Slack bot to guide new users toward projects they would be interested in based on their skills, interests, and location
- Provide Insights β Offer analytics and visualizations on metadata coverage across the OWASP ecosystem
How It Works¶
OWASP repositories typically include an index.md file with Jekyll front matter:
---
title: Project Name
layout: col-sidebar
tags: security, web, tools
level: 3
type: tool
region: Global
pitch: A brief description of the project
---
The system:
- Scrapes all OWASP organization repositories via the GitHub API
- Extracts YAML front matter from each repository's
index.mdfile - Normalizes the data into consistent formats (CSV, JSON)
- Visualizes the data through a web-based explorer and analytics dashboard
Web Interface¶
| Interface | Description | Link |
|---|---|---|
| Metadata Explorer | Interactive table for browsing, filtering, and searching repository metadata | View β |
| Analytics Dashboard | Visual analytics showing field usage, completeness rates, and trends | View β |
| Project Wayfinder | Visual diagram showing projects grouped by type and maturity level | View β |
| SDLC Integration Chart | Mermaid-based diagram mapping OWASP projects to SDLC phases | View β |
Data Outputs¶
The scraper generates several data files in the data/ directory:
| File | Description |
|---|---|
metadata.json |
Complete metadata for all repositories in JSON format |
metadata.csv |
Full metadata in CSV format |
metadata_matrix.json |
Matrix showing which fields are present per repository |
metadata_matrix.csv |
Matrix in CSV format |
metadata_summary.md |
Summary of field usage across all repositories |
metadata_checklist.csv |
Checklist format for tracking metadata completeness |
OWASP Slack Bot Integration¶
The standardized metadata from this project is consumed by the OWASP Slack bot to:
- Help new contributors find projects matching their skills and interests
- Recommend relevant chapters based on user location
- Provide quick access to project information and resources
- Guide users to projects based on tags, type, and activity level
Usage¶
Running the Scraper¶
# Set up environment
pip install -r requirements.txt
# Set GitHub token (optional, but recommended for higher rate limits)
export GITHUB_TOKEN=your_token_here
# Run the scraper
python scripts/scrape_metadata.py
Viewing the Data¶
Visit the Live Dashboard to explore the metadata interactively, or run locally by opening index.html in a browser.
Project Structure¶
βββ scripts/
β βββ scrape_metadata.py # Main scraper script
βββ data/ # Generated metadata files
βββ index.html # Metadata explorer UI
βββ charts.html # Analytics dashboard
βββ diagram.html # Project Wayfinder diagram
βββ mermaid-diagram.html # SDLC integration diagram
βββ app.js # Explorer application logic
βββ charts.js # Analytics charts logic
βββ diagram.js # Project Wayfinder logic
βββ styles.css # Shared styles
βββ charts.css # Analytics-specific styles
Contributing¶
Contributions are welcome! This project helps improve metadata consistency across OWASP repositories. If you notice missing or inconsistent metadata in OWASP projects, consider contributing to those repositories by adding or updating their index.md front matter.
- Fork this repository
- Create a feature branch
- Commit your changes
- Open a Pull Request