|
| 1 | +"""Seed the database with example ideas for demo purposes.""" |
| 2 | + |
| 3 | +import asyncio |
| 4 | +import sys |
| 5 | +from pathlib import Path |
| 6 | + |
| 7 | +sys.path.insert(0, str(Path(__file__).parent.parent / "src")) |
| 8 | + |
| 9 | +from project_forge.models import Idea, IdeaCategory # noqa: E402 |
| 10 | +from project_forge.storage.db import Database # noqa: E402 |
| 11 | + |
| 12 | +DEMO_IDEAS = [ |
| 13 | + Idea( |
| 14 | + name="Ghost Keys", |
| 15 | + tagline="Detect orphaned API keys across your entire infrastructure", |
| 16 | + description=( |
| 17 | + "Ghost Keys scans your infrastructure for API keys that are still active but no longer " |
| 18 | + "used by any service. It integrates with cloud providers, secret managers, and application " |
| 19 | + "logs to build a dependency graph of key usage. Keys with no recent activity get flagged " |
| 20 | + "for rotation or revocation.\n\n" |
| 21 | + "Most organizations have hundreds of API keys that nobody remembers creating. " |
| 22 | + "Each one is a potential attack vector waiting to be exploited." |
| 23 | + ), |
| 24 | + category=IdeaCategory.SECURITY_TOOL, |
| 25 | + market_analysis=( |
| 26 | + "API key sprawl is a growing problem as organizations adopt more SaaS tools and " |
| 27 | + "microservices. Existing secret scanners find exposed keys but don't track usage. " |
| 28 | + "This fills the gap between secret detection and secret lifecycle management." |
| 29 | + ), |
| 30 | + feasibility_score=0.85, |
| 31 | + mvp_scope=( |
| 32 | + "CLI tool that scans AWS IAM, GitHub tokens, and common secret managers. " |
| 33 | + "Reports unused keys older than 30 days. No rotation in MVP, just detection." |
| 34 | + ), |
| 35 | + tech_stack=["python", "boto3", "click", "sqlite"], |
| 36 | + ), |
| 37 | + Idea( |
| 38 | + name="Drift Sentinel", |
| 39 | + tagline="Real-time infrastructure drift detection with auto-fix suggestions", |
| 40 | + description=( |
| 41 | + "Drift Sentinel continuously monitors your infrastructure state against your IaC " |
| 42 | + "definitions and alerts when drift occurs. Unlike terraform plan which is point-in-time, " |
| 43 | + "this runs continuously and catches manual changes, failed deployments, and config drift " |
| 44 | + "the moment they happen.\n\n" |
| 45 | + "It generates fix suggestions as PR-ready IaC patches, not just alerts." |
| 46 | + ), |
| 47 | + category=IdeaCategory.DEVOPS_TOOLING, |
| 48 | + market_analysis=( |
| 49 | + "Infrastructure drift costs teams hours of debugging when production diverges from code. " |
| 50 | + "Existing tools detect drift but don't help fix it. The auto-fix-as-PR approach is novel." |
| 51 | + ), |
| 52 | + feasibility_score=0.78, |
| 53 | + mvp_scope=( |
| 54 | + "Agent that polls Terraform state vs actual AWS resources every 5 minutes. " |
| 55 | + "Generates diff reports and creates PRs with suggested .tf fixes." |
| 56 | + ), |
| 57 | + tech_stack=["python", "terraform", "boto3", "fastapi"], |
| 58 | + ), |
| 59 | + Idea( |
| 60 | + name="Consent Mesh", |
| 61 | + tagline="Distributed consent management for microservice architectures", |
| 62 | + description=( |
| 63 | + "Consent Mesh provides a sidecar-style consent enforcement layer for microservices. " |
| 64 | + "When user consent is granted or revoked, it propagates across all services in real-time " |
| 65 | + "via an event mesh. Each service checks consent before processing PII.\n\n" |
| 66 | + "GDPR and CCPA require consent propagation but most architectures have no mechanism for it." |
| 67 | + ), |
| 68 | + category=IdeaCategory.PRIVACY, |
| 69 | + market_analysis=( |
| 70 | + "Privacy regulations are getting stricter globally. Most consent management is centralized " |
| 71 | + "and can't keep up with distributed architectures. A mesh approach is the right pattern." |
| 72 | + ), |
| 73 | + feasibility_score=0.72, |
| 74 | + mvp_scope=( |
| 75 | + "Go sidecar that intercepts HTTP requests, checks consent status from a central store, " |
| 76 | + "and blocks or allows based on consent scope. REST API for consent CRUD." |
| 77 | + ), |
| 78 | + tech_stack=["go", "redis", "grpc", "protobuf"], |
| 79 | + ), |
| 80 | + Idea( |
| 81 | + name="Pipeline Profiler", |
| 82 | + tagline="Find and fix the slowest steps in your CI/CD pipeline", |
| 83 | + description=( |
| 84 | + "Pipeline Profiler analyzes your GitHub Actions (or GitLab/Jenkins) workflow runs to " |
| 85 | + "identify bottlenecks, cache misses, redundant steps, and parallelization opportunities. " |
| 86 | + "It generates actionable recommendations with estimated time savings.\n\n" |
| 87 | + "Most teams accept slow CI as inevitable. This tool shows exactly where time is wasted." |
| 88 | + ), |
| 89 | + category=IdeaCategory.AUTOMATION, |
| 90 | + market_analysis=( |
| 91 | + "CI/CD costs are rising fast. A 10-minute pipeline running 50 times a day wastes " |
| 92 | + "8+ hours of developer wait time daily. Tools that cut this are immediately valuable." |
| 93 | + ), |
| 94 | + feasibility_score=0.88, |
| 95 | + mvp_scope=( |
| 96 | + "GitHub App that analyzes workflow run logs, generates a flamegraph-style visualization " |
| 97 | + "of step durations, and suggests optimizations via PR comments." |
| 98 | + ), |
| 99 | + tech_stack=["python", "fastapi", "github-api", "d3.js"], |
| 100 | + ), |
| 101 | + Idea( |
| 102 | + name="SBOM Watcher", |
| 103 | + tagline="Continuous SBOM generation with real-time vulnerability tracking", |
| 104 | + description=( |
| 105 | + "SBOM Watcher generates Software Bill of Materials on every commit and continuously " |
| 106 | + "monitors all dependencies for new CVEs. When a vulnerability is disclosed, it instantly " |
| 107 | + "identifies which of your projects are affected and creates prioritized fix PRs.\n\n" |
| 108 | + "Current SBOM tools are point-in-time snapshots. This is a living, breathing SBOM." |
| 109 | + ), |
| 110 | + category=IdeaCategory.COMPLIANCE, |
| 111 | + market_analysis=( |
| 112 | + "SBOM requirements are becoming law (US Executive Order, EU CRA). Most tools generate " |
| 113 | + "static SBOMs. A continuous, reactive SBOM with auto-remediation is what the market needs." |
| 114 | + ), |
| 115 | + feasibility_score=0.82, |
| 116 | + mvp_scope=( |
| 117 | + "GitHub Action that generates CycloneDX SBOM on push, stores versions, " |
| 118 | + "and polls NVD/OSV for new CVEs affecting listed components. Slack alerts + PR creation." |
| 119 | + ), |
| 120 | + tech_stack=["python", "cyclonedx", "github-actions", "sqlite"], |
| 121 | + ), |
| 122 | +] |
| 123 | + |
| 124 | + |
| 125 | +async def main(): |
| 126 | + db = Database(Path("/opt/project-forge/data/forge.db")) |
| 127 | + await db.connect() |
| 128 | + for idea in DEMO_IDEAS: |
| 129 | + await db.save_idea(idea) |
| 130 | + print(f"Seeded: {idea.name} ({idea.category.value}, score: {idea.feasibility_score})") |
| 131 | + await db.close() |
| 132 | + print(f"\nSeeded {len(DEMO_IDEAS)} demo ideas. Visit http://localhost:55443") |
| 133 | + |
| 134 | + |
| 135 | +if __name__ == "__main__": |
| 136 | + asyncio.run(main()) |
0 commit comments