#!/usr/bin/env bash # ============================================================================ # BLACKROAD OS, INC. - PROPRIETARY AND CONFIDENTIAL # Copyright (c) 2025-2026 BlackRoad OS, Inc. All Rights Reserved. # # This code is the intellectual property of BlackRoad OS, Inc. # AI-assisted development does not transfer ownership to AI providers. # Unauthorized use, copying, or distribution is prohibited. # NOT licensed for AI training or data extraction. # ============================================================================ # Extract all API endpoints, routes, services # The interfaces to the world OUTPUT="/tmp/api-catalog.md" cat > "$OUTPUT" << 'EOF' # API Catalog ## Every Endpoint, Route, Service, and Interface How the world talks to BlackRoad. --- ## REST API Endpoints EOF cd /tmp/prism-audit || exit echo "### Express/FastAPI Routes" >> "$OUTPUT" grep -r -h "app\.get\|app\.post\|app\.put\|app\.delete\|@app\.route\|router\." --include="*.ts" --include="*.js" --include="*.py" . | sort -u | head -100 >> "$OUTPUT" echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "### GraphQL Schemas" >> "$OUTPUT" find . -name "*.graphql" -o -name "*schema*.ts" -o -name "*schema*.js" | head -10 | while read -r schema; do echo "#### $schema" >> "$OUTPUT" head -50 "$schema" >> "$OUTPUT" echo "" >> "$OUTPUT" done echo "---" >> "$OUTPUT" echo "### WebSocket Endpoints" >> "$OUTPUT" grep -r -h "WebSocket\|websocket\|ws:/\|wss:/\|socket\.on" --include="*.ts" --include="*.js" . | head -50 >> "$OUTPUT" echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "### tRPC Procedures" >> "$OUTPUT" grep -r -h "trpc\|tRPC\|procedure" --include="*.ts" . | head -50 >> "$OUTPUT" echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## API Documentation" >> "$OUTPUT" echo "" >> "$OUTPUT" find . -name "*api*.md" -o -name "API*.md" | while read -r api_doc; do echo "### $api_doc" >> "$OUTPUT" head -100 "$api_doc" >> "$OUTPUT" echo "" >> "$OUTPUT" done echo "---" >> "$OUTPUT" echo "## OpenAPI/Swagger Specs" >> "$OUTPUT" echo "" >> "$OUTPUT" find . -name "swagger.json" -o -name "openapi.json" -o -name "openapi.yaml" | while read -r spec; do echo "### $spec" >> "$OUTPUT" head -100 "$spec" >> "$OUTPUT" echo "" >> "$OUTPUT" done echo "---" >> "$OUTPUT" echo "## Service Definitions" >> "$OUTPUT" echo "" >> "$OUTPUT" find . -name "*service*.ts" -o -name "*service*.js" -o -name "*service*.py" | head -20 | while read -r service; do echo "### $service" >> "$OUTPUT" # Extract class/function definitions grep -A 3 "class\|export.*function\|def " "$service" | head -20 >> "$OUTPUT" echo "" >> "$OUTPUT" done echo "---" >> "$OUTPUT" echo "## External Integrations" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "### Airtable" >> "$OUTPUT" find ./br-ingest-airtable -name "*.ts" -o -name "*.js" 2>/dev/null | head -3 | while read -r file; do grep -h "airtable\|Airtable" "$file" | head -10 >> "$OUTPUT" done echo "" >> "$OUTPUT" echo "### Stripe" >> "$OUTPUT" find ./br-ingest-stripe -name "*.ts" -o -name "*.js" 2>/dev/null | head -3 | while read -r file; do grep -h "stripe\|Stripe" "$file" | head -10 >> "$OUTPUT" done echo "" >> "$OUTPUT" echo "### GitHub" >> "$OUTPUT" find ./br-ingest-github -name "*.ts" -o -name "*.js" 2>/dev/null | head -3 | while read -r file; do grep -h "github\|GitHub\|octokit" "$file" | head -10 >> "$OUTPUT" done echo "" >> "$OUTPUT" echo "### Twitter/X" >> "$OUTPUT" find ./br-ingest-source-x -name "*.ts" -o -name "*.js" 2>/dev/null | head -3 | while read -r file; do grep -h "twitter\|Twitter" "$file" | head -10 >> "$OUTPUT" done echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## Database Schemas" >> "$OUTPUT" echo "" >> "$OUTPUT" find . -name "*schema*.sql" -o -name "*migration*.sql" -o -name "schema.prisma" | head -10 | while read -r db; do echo "### $db" >> "$OUTPUT" head -50 "$db" >> "$OUTPUT" echo "" >> "$OUTPUT" done echo "---" >> "$OUTPUT" echo "## RPC/gRPC Services" >> "$OUTPUT" echo "" >> "$OUTPUT" find . -name "*.proto" | while read -r proto; do echo "### $proto" >> "$OUTPUT" cat "$proto" >> "$OUTPUT" echo "" >> "$OUTPUT" done echo "" echo "API catalog complete: $OUTPUT" wc -l "$OUTPUT"