{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__mbarbine__ja4-sidecar",
    "name": "mbarbine__ja4-sidecar",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/mbarbine__ja4-sidecar",
    "relative_path": "github-recent/mbarbine__ja4-sidecar",
    "remote_url": "git@github.com:mbarbine/ja4-sidecar.git",
    "default_branch": "main",
    "current_commit": "ec004b476d39d34f5d5aeb73834206133b8ebe12"
  },
  "languages": [
    {
      "language": "JSON",
      "files": 19,
      "bytes": 684695
    },
    {
      "language": "Shell",
      "files": 15,
      "bytes": 198926
    },
    {
      "language": "JavaScript",
      "files": 21,
      "bytes": 164146
    },
    {
      "language": "TOML",
      "files": 24,
      "bytes": 40662
    },
    {
      "language": "YAML",
      "files": 7,
      "bytes": 24500
    },
    {
      "language": "Markdown",
      "files": 12,
      "bytes": 19390
    },
    {
      "language": "CSS",
      "files": 1,
      "bytes": 9945
    },
    {
      "language": "Dockerfile",
      "files": 3,
      "bytes": 3187
    }
  ],
  "frameworks": [
    {
      "name": "Express",
      "confidence": "high",
      "evidence_paths": [
        "ja4-alerts/package.json",
        "ja4-cli/package.json",
        "ja4-sniffer/package.json",
        "scripts/tests/package.json"
      ]
    },
    {
      "name": "Jest",
      "confidence": "high",
      "evidence_paths": [
        "ja4-alerts/package.json",
        "ja4-cli/package.json",
        "ja4-sniffer/package.json",
        "scripts/tests/package.json"
      ]
    }
  ],
  "packages": {
    "package_manager": "npm",
    "manifests": [
      {
        "path": "ja4-alerts/package.json",
        "name": "ja4-alerts",
        "version": "1.0.0",
        "scripts": {
          "start": "node alert-engine.js",
          "dev": "nodemon alert-engine.js",
          "test": "jest"
        },
        "dependencies": {
          "mongodb": "^5.0.0",
          "winston": "^3.3.3",
          "express": "^4.18.0",
          "nodemailer": "^6.9.0",
          "axios": "^1.4.0",
          "helmet": "^6.0.0",
          "node-cron": "^3.0.0"
        },
        "dev_dependencies": {
          "nodemon": "^2.0.0",
          "jest": "^29.0.0"
        }
      },
      {
        "path": "ja4-cli/package.json",
        "name": "ja4-cli",
        "version": "1.0.0",
        "scripts": {
          "start": "node server.js",
          "dev": "nodemon server.js",
          "test": "jest --coverage",
          "lint": "eslint .",
          "format": "prettier --write ."
        },
        "dependencies": {
          "mongodb": "^5.0.0",
          "winston": "^3.3.3",
          "express": "^4.18.0",
          "helmet": "^6.0.0",
          "express-rate-limit": "^6.0.0",
          "redis": "^4.0.0",
          "axios": "^1.0.0",
          "commander": "^9.0.0"
        },
        "dev_dependencies": {
          "nodemon": "^2.0.0",
          "jest": "^29.0.0",
          "eslint": "^8.0.0",
          "prettier": "^3.0.0"
        }
      },
      {
        "path": "ja4-sniffer/package.json",
        "name": "ja4-email-sniffer",
        "version": "2.0.0",
        "scripts": {
          "start": "node email-sniffer.js",
          "dev": "nodemon email-sniffer.js",
          "test": "jest"
        },
        "dependencies": {
          "cap": "^0.2.1",
          "mongodb": "^6.0.0",
          "redis": "^4.6.0",
          "ioredis": "^5.3.0",
          "axios": "^1.6.0",
          "winston": "^3.11.0",
          "express": "^4.18.0"
        },
        "dev_dependencies": {
          "nodemon": "^3.0.0",
          "jest": "^29.0.0"
        }
      },
      {
        "path": "scripts/tests/package.json",
        "name": "ja4-sidecar-tests",
        "version": "1.0.0",
        "scripts": {
          "test": "node test-runner.js",
          "test:basic": "node test-runner.js --type=basic",
          "test:comprehensive": "node comprehensive-test-runner.js --type=comprehensive",
          "test:exhaustive": "node exhaustive-test-suite.js",
          "test:docker": "node docker-test-suite.js",
          "test:scenarios": "node scenario-test-suite.js",
          "test:infrastructure": "node comprehensive-test-runner.js --type=infrastructure",
          "test:database": "node comprehensive-test-runner.js --type=database",
          "test:services": "node comprehensive-test-runner.js --type=services",
          "test:monitoring": "node comprehensive-test-runner.js --type=monitoring",
          "test:load": "node comprehensive-test-runner.js --type=load",
          "test:security": "node comprehensive-test-runner.js --type=security",
          "test:email": "node comprehensive-test-runner.js --type=email",
          "test:email-integration": "node email-integration-tests.js",
          "test:load-performance": "node load-performance-tests.js",
          "test:fingerprints": "node test-runner.js --type=fingerprints",
          "test:persistence": "node test-runner.js --type=persistence",
          "test:attack-sim": "node scenario-test-suite.js --scenarios=attacks",
          "test:email-workflows": "node scenario-test-suite.js --scenarios=email",
          "test:operations": "node scenario-test-suite.js --scenarios=ops",
          "test:all": "npm run test:exhaustive && npm run test:docker && npm run test:scenarios",
          "test:quick": "npm run test:infrastructure && npm run test:services",
          "test:full-suite": "npm run test:comprehensive && npm run test:email-integration && npm run test:load-performance && npm run test:docker && npm run test:scenarios",
          "test:ci": "node test-runner.js --ci",
          "test:report": "node test-report-generator.js",
          "lint": "eslint .",
          "lint:fix": "eslint . --fix",
          "pretest": "npm run lint"
        },
        "dependencies": {
          "mongodb": "^6.0.0",
          "redis": "^4.6.0",
          "axios": "^1.6.0",
          "commander": "^11.0.0",
          "chalk": "^4.1.2",
          "ora": "^5.4.1",
          "nodemailer": "^6.9.0",
          "winston": "^3.10.0",
          "dotenv": "^16.3.1",
          "moment": "^2.29.4"
        },
        "dev_dependencies": {
          "jest": "^29.0.0",
          "eslint": "^8.45.0",
          "eslint-config-standard": "^17.1.0",
          "eslint-plugin-jest": "^27.2.3",
          "mocha": "^10.2.0",
          "chai": "^4.3.7",
          "sinon": "^15.2.0",
          "supertest": "^6.3.3",
          "nyc": "^15.1.0"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [],
    "app_routes": []
  },
  "components": [],
  "data_models": [
    {
      "name": "schema",
      "kind": "schema-file",
      "source_path": "ja4-storage/schema.js"
    }
  ],
  "database": {
    "databases": [
      "mongodb",
      "redis"
    ],
    "schemas": [
      {
        "path": "ja4-storage/schema.js"
      }
    ],
    "migrations": []
  },
  "tests": [
    {
      "name": "test_cert_utils.js",
      "kind": "unit-or-integration",
      "source_path": "tests/test_cert_utils.js"
    },
    {
      "name": "test_fingerprint.js",
      "kind": "unit-or-integration",
      "source_path": "tests/test_fingerprint.js"
    },
    {
      "name": "test_ja4l.js",
      "kind": "unit-or-integration",
      "source_path": "tests/test_ja4l.js"
    }
  ],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [
      {
        "path": "ja4-alerts/Dockerfile"
      },
      {
        "path": "ja4-cli/Dockerfile"
      },
      {
        "path": "ja4-cli/Dockerfile.production"
      },
      {
        "path": "ja4-sniffer/Dockerfile"
      },
      {
        "path": "ja4-sniffer/Dockerfile.production"
      }
    ],
    "compose_files": [
      {
        "path": "docker-compose.production.yml"
      },
      {
        "path": "docker-compose.yml"
      }
    ]
  },
  "env": {
    "example_files": [
      {
        "path": ".env"
      },
      {
        "path": ".env.example"
      },
      {
        "path": ".env.production"
      }
    ],
    "variables": [
      {
        "name": "ABUSE_IPDB_API_KEY",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": true
      },
      {
        "name": "ALERT_FROM",
        "source_paths": [
          "ja4-alerts/notify.js"
        ],
        "likely_secret": false
      },
      {
        "name": "ALERT_TO",
        "source_paths": [
          "ja4-alerts/notify.js"
        ],
        "likely_secret": false
      },
      {
        "name": "ALERT_WEBHOOK_URL",
        "source_paths": [
          ".env",
          ".env.production",
          "ja4-alerts/alert-engine.js"
        ],
        "likely_secret": false
      },
      {
        "name": "ANOMALY_SCORE",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "AUDIT_ENABLED",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "AUDIT_LOG_PATH",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "BACKUP_ENABLED",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "BACKUP_RETENTION_DAYS",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "BACKUP_SCHEDULE",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "CACHE_TTL_DAYS",
        "source_paths": [
          "ja4-core/geo_enrich.js"
        ],
        "likely_secret": false
      },
      {
        "name": "CAPTURE_BUFFER_SIZE",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "CLI_LOG_LEVEL",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "CLI_MAX_RESULTS",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "COLLECTION_NAME",
        "source_paths": [
          "ja4-cli/ja4-cli.js",
          "ja4-storage/init_indexes.js"
        ],
        "likely_secret": false
      },
      {
        "name": "COMPLIANCE_MODE",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "CONNECTION_TIMEOUT",
        "source_paths": [
          "ja4-cli/ja4-cli.js"
        ],
        "likely_secret": false
      },
      {
        "name": "DATA_ANONYMIZATION",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "DATA_RETENTION_DAYS",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "DB_NAME",
        "source_paths": [
          "ja4-cli/ja4-cli.js",
          "ja4-core/geo_enrich.js",
          "ja4-storage/init_indexes.js"
        ],
        "likely_secret": false
      },
      {
        "name": "DEBUG_MODE",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "EMAIL_FROM",
        "source_paths": [
          ".env",
          ".env.production",
          "ja4-alerts/alert-engine.js"
        ],
        "likely_secret": false
      },
      {
        "name": "EMAIL_PORTS",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "EMAIL_SMTP_HOST",
        "source_paths": [
          ".env",
          ".env.production",
          "ja4-alerts/alert-engine.js"
        ],
        "likely_secret": false
      },
      {
        "name": "EMAIL_SMTP_PASSWORD",
        "source_paths": [
          ".env",
          ".env.production",
          "ja4-alerts/alert-engine.js"
        ],
        "likely_secret": true
      },
      {
        "name": "EMAIL_SMTP_PORT",
        "source_paths": [
          ".env",
          ".env.production",
          "ja4-alerts/alert-engine.js"
        ],
        "likely_secret": false
      },
      {
        "name": "EMAIL_SMTP_USER",
        "source_paths": [
          ".env",
          ".env.production",
          "ja4-alerts/alert-engine.js"
        ],
        "likely_secret": false
      },
      {
        "name": "EMAIL_TO",
        "source_paths": [
          ".env",
          ".env.production",
          "ja4-alerts/alert-engine.js"
        ],
        "likely_secret": false
      },
      {
        "name": "ENABLE_TEST_ENDPOINTS",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "ENABLE_TLS",
        "source_paths": [
          ".env",
          ".env.example",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "FINGERPRINT_RETENTION_DAYS",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "FORCE_DB",
        "source_paths": [
          "ja4-cli/ja4-cli.js"
        ],
        "likely_secret": false
      },
      {
        "name": "GDPR_ENABLED",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "GRAFANA_ADMIN_PASSWORD",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": true
      },
      {
        "name": "HEALTH_CHECK_ENDPOINT",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "HEALTH_CHECK_INTERVAL",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "HEALTH_CHECK_RETRIES",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "HEALTH_CHECK_TIMEOUT",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "HEALTH_PORT",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "INTERFACES",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "IP_COLLECTION",
        "source_paths": [
          "ja4-core/geo_enrich.js"
        ],
        "likely_secret": false
      },
      {
        "name": "JA4_CACHE_EXPIRY",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "JA4_SUBNET",
        "source_paths": [
          ".env",
          ".env.example",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "JA4DB_API_KEY",
        "source_paths": [
          "ja4-cli/ja4-enhanced.js",
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": true
      },
      {
        "name": "JA4DB_ENABLED",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "JA4DB_ENDPOINT",
        "source_paths": [
          "ja4-cli/ja4-enhanced.js",
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "JA4DB_TIMEOUT",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "LOCAL_CACHE_MAX_SIZE",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "LOG_FORMAT",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "LOG_LEVEL",
        "source_paths": [
          "ja4-alerts/alert-engine.js",
          "ja4-alerts/notify.js",
          "ja4-cli/ja4-cli.js",
          "ja4-cli/ja4-enhanced.js",
          "ja4-cli/server.js",
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "LOG_MAX_SIZE",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "LOG_RETENTION_DAYS",
        "source_paths": [
          ".env",
          ".env.example",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "LOG_ROTATION",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "MAX_CPU",
        "source_paths": [
          ".env",
          ".env.example",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "MAX_MEMORY",
        "source_paths": [
          ".env",
          ".env.example",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "METRICS_ENABLED",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "METRICS_PATH",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "MOCK_EXTERNAL_APIS",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGO_AUTH_DATABASE",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": true
      },
      {
        "name": "MONGO_DATABASE",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGO_HOST",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGO_PASSWORD",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": true
      },
      {
        "name": "MONGO_POOL_SIZE",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGO_PORT",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGO_ROOT_PASSWORD",
        "source_paths": [
          ".env"
        ],
        "likely_secret": true
      },
      {
        "name": "MONGO_SSL",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGO_SSL_CA_PATH",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGO_SSL_CERT_PATH",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGO_TIMEOUT",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGO_URI",
        "source_paths": [
          ".env",
          ".env.example",
          "ja4-alerts/alert-engine.js",
          "ja4-cli/ja4-cli.js",
          "ja4-cli/ja4-enhanced.js",
          "ja4-cli/server.js",
          "ja4-core/geo_enrich.js",
          "ja4-sniffer/email-sniffer.js",
          "ja4-storage/init_indexes.js"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGO_USERNAME",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "MONGODB_MAX_CONNECTIONS",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "OUTPUT_FILE",
        "source_paths": [
          "ja4-cli/ja4-cli.js"
        ],
        "likely_secret": false
      },
      {
        "name": "OUTPUT_FORMAT",
        "source_paths": [
          "ja4-cli/ja4-cli.js"
        ],
        "likely_secret": false
      },
      {
        "name": "PACKET_MIN_BYTES",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "PORT",
        "source_paths": [
          "ja4-cli/server.js"
        ],
        "likely_secret": false
      },
      {
        "name": "PROMETHEUS_ENABLED",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "PROMETHEUS_PORT",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "REDIS_PASSWORD",
        "source_paths": [
          ".env"
        ],
        "likely_secret": true
      },
      {
        "name": "REDIS_URI",
        "source_paths": [
          "ja4-cli/ja4-enhanced.js",
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "REJECT_UNAUTHORIZED",
        "source_paths": [
          "ja4-cli/ja4-cli.js"
        ],
        "likely_secret": true
      },
      {
        "name": "SECURITY_EVENT_RETENTION_DAYS",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "SHODAN_API_KEY",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": true
      },
      {
        "name": "SLACK_WEBHOOK_URL",
        "source_paths": [
          ".env",
          ".env.production",
          "ja4-alerts/alert-engine.js"
        ],
        "likely_secret": false
      },
      {
        "name": "SNIFFER_BATCH_SIZE",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "SNIFFER_BUFFER_SIZE",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "SNIFFER_CAPTURE_FILTER",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "SNIFFER_INTERFACE",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "SNIFFER_INTERFACES",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "SNIFFER_LOG_LEVEL",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "SNIFFER_WORKER_THREADS",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "SUSPICIOUS_THRESHOLD",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "SYSLOG_FACILITY",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "SYSLOG_HOST",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "SYSLOG_PORT",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "TLS_CA_PATH",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "TLS_CERT_PATH",
        "source_paths": [
          ".env",
          ".env.example",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "TLS_KEY_PATH",
        "source_paths": [
          ".env",
          ".env.example",
          ".env.production"
        ],
        "likely_secret": true
      },
      {
        "name": "TLS_MAX_VERSION",
        "source_paths": [
          "ja4-cli/ja4-cli.js"
        ],
        "likely_secret": false
      },
      {
        "name": "TLS_MIN_VERSION",
        "source_paths": [
          "ja4-cli/ja4-cli.js"
        ],
        "likely_secret": false
      },
      {
        "name": "TLS_VERIFY_PEER",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "TTL_DAYS",
        "source_paths": [
          "ja4-storage/init_indexes.js"
        ],
        "likely_secret": false
      },
      {
        "name": "VERBOSE",
        "source_paths": [
          "ja4-cli/ja4-cli.js"
        ],
        "likely_secret": false
      },
      {
        "name": "VIRUSTOTAL_API_KEY",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": true
      },
      {
        "name": "WILDDUCK_API_TOKEN",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": true
      },
      {
        "name": "WILDDUCK_HOST",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": false
      },
      {
        "name": "WILDDUCK_INTEGRATION",
        "source_paths": [
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "WILDDUCK_MONGODB",
        "source_paths": [
          ".env",
          ".env.example"
        ],
        "likely_secret": false
      },
      {
        "name": "WILDDUCK_REDIS_PREFIX",
        "source_paths": [
          "ja4-cli/ja4-enhanced.js",
          "ja4-sniffer/email-sniffer.js"
        ],
        "likely_secret": false
      },
      {
        "name": "WILDDUCK_SMTP_HOST",
        "source_paths": [
          "ja4-alerts/notify.js"
        ],
        "likely_secret": false
      },
      {
        "name": "WILDDUCK_SMTP_PASS",
        "source_paths": [
          "ja4-alerts/notify.js"
        ],
        "likely_secret": false
      },
      {
        "name": "WILDDUCK_SMTP_PORT",
        "source_paths": [
          "ja4-alerts/notify.js"
        ],
        "likely_secret": false
      },
      {
        "name": "WILDDUCK_SMTP_USER",
        "source_paths": [
          "ja4-alerts/notify.js"
        ],
        "likely_secret": false
      },
      {
        "name": "WILDDUCK_WEBHOOK_SECRET",
        "source_paths": [
          ".env",
          ".env.production"
        ],
        "likely_secret": true
      }
    ]
  },
  "configs": [
    {
      "path": "docker-compose.yml"
    },
    {
      "path": "ja4-alerts/package.json"
    },
    {
      "path": "ja4-cli/package.json"
    },
    {
      "path": "ja4-sniffer/package.json"
    },
    {
      "path": "scripts/tests/package.json"
    }
  ],
  "docs": {
    "readme_paths": [
      {
        "path": "docs/README.md"
      },
      {
        "path": "README.md"
      }
    ],
    "doc_paths": [
      {
        "path": "docs/alerts.md"
      },
      {
        "path": "docs/core.md"
      },
      {
        "path": "docs/ja4-cli.md"
      },
      {
        "path": "docs/ja4l.md"
      },
      {
        "path": "docs/o365.md"
      },
      {
        "path": "docs/README.md"
      },
      {
        "path": "docs/sniffer.md"
      },
      {
        "path": "docs/storage.md"
      },
      {
        "path": "docs/tests.md"
      }
    ],
    "llms_context_paths": []
  },
  "discovery_files": {
    "openapi": [],
    "mcp": [],
    "llms": [],
    "sitemaps": [],
    "feeds": [],
    "well_known": [],
    "robots": [],
    "manifests": []
  },
  "integrations": [
    {
      "name": "Redis",
      "confidence": "medium",
      "evidence_paths": [
        ".env",
        "archive/dev-manage.sh",
        "archive/DEVELOPMENT.md",
        "archive/legacy-tests/comprehensive-test-report.json",
        "archive/legacy-tests/exhaustive-test-report-1752531577800.json",
        "archive/legacy-tests/exhaustive-test-report-1752532327071.json",
        "archive/legacy-tests/master-test-report-1752531756255.json",
        "archive/legacy-tests/test-report.json",
        "archive/manage-legacy.sh",
        "docker-compose.yml",
        "ja4-alerts/package.json",
        "ja4-cli/ja4-enhanced.js",
        "ja4-cli/package.json",
        "ja4-sniffer/email-sniffer.js",
        "ja4-sniffer/package-lock.json",
        "ja4-sniffer/package.json",
        "scripts/lib/help.sh",
        "scripts/tests/package.json"
      ]
    },
    {
      "name": "Slack",
      "confidence": "medium",
      "evidence_paths": [
        ".env",
        ".env.production",
        "docker-compose.production.yml",
        "ja4-alerts/alert-engine.js",
        "ja4-alerts/package.json",
        "ja4-cli/package.json",
        "ja4-sniffer/package.json",
        "scripts/lib/help.sh",
        "scripts/tests/package.json"
      ]
    }
  ],
  "license": {
    "spdx": null,
    "paths": []
  },
  "comments": [
    {
      "kind": "security",
      "source_path": ".env",
      "line": 35,
      "text": "# Security Configuration"
    },
    {
      "kind": "security",
      "source_path": ".env",
      "line": 46,
      "text": "# === SECURITY CONFIGURATION ==="
    },
    {
      "kind": "security",
      "source_path": ".env",
      "line": 77,
      "text": "EMAIL_TO=security@your-domain.com"
    },
    {
      "kind": "security",
      "source_path": ".env.example",
      "line": 35,
      "text": "# Security Configuration"
    },
    {
      "kind": "security",
      "source_path": ".env.production",
      "line": 4,
      "text": "# === SECURITY CONFIGURATION ==="
    },
    {
      "kind": "security",
      "source_path": ".env.production",
      "line": 40,
      "text": "EMAIL_TO=security@your-domain.com"
    },
    {
      "kind": "security",
      "source_path": "archive/dev-manage.sh",
      "line": 3,
      "text": "# JA4 Email Security Development Management Script"
    },
    {
      "kind": "security",
      "source_path": "archive/dev-manage.sh",
      "line": 35,
      "text": "echo \"JA4 Email Security Development Stack Manager\""
    },
    {
      "kind": "security",
      "source_path": "archive/dev-manage.sh",
      "line": 60,
      "text": "log \"Starting JA4 Email Security development stack...\""
    },
    {
      "kind": "security",
      "source_path": "archive/dev-manage.sh",
      "line": 75,
      "text": "log \"Stopping JA4 Email Security stack...\""
    },
    {
      "kind": "security",
      "source_path": "archive/dev-manage.sh",
      "line": 80,
      "text": "log \"Restarting JA4 Email Security stack...\""
    },
    {
      "kind": "security",
      "source_path": "archive/dev-manage.sh",
      "line": 87,
      "text": "log \"Building JA4 Email Security services...\""
    },
    {
      "kind": "security",
      "source_path": "archive/dev-manage.sh",
      "line": 100,
      "text": "log \"JA4 Email Security Stack Status:\""
    },
    {
      "kind": "security",
      "source_path": "archive/dev-manage.sh",
      "line": 151,
      "text": "log \"Cleaning up JA4 Email Security stack...\""
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 1,
      "text": "# JA4 Email Security Development Testing Guide"
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 3,
      "text": "This guide helps you test the JA4 email security stack in development mode."
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 92,
      "text": "#### Check Security Events"
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 93,
      "text": "The sniffer publishes security events to Redis channels that WildDuck can subscribe to:"
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 98,
      "text": "PSUBSCRIBE \"security:*\""
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 113,
      "text": "# Inspect security events"
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 131,
      "text": "KEYS \"*security*\""
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 150,
      "text": "tail -f logs/sniffer/security-events.log"
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 176,
      "text": "# Check security events"
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 185,
      "text": "4. Check security event correlation"
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 252,
      "text": "4. **Security Event Monitoring:** Set up continuous monitoring:"
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 269,
      "text": "3. **Redis channels** receiving security events"
    },
    {
      "kind": "security",
      "source_path": "archive/DEVELOPMENT.md",
      "line": 273,
      "text": "The stack is designed to be lightweight for development while maintaining all the core functionality needed for email security monitoring and JA4 fingerprinting."
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/comprehensive-test-report.json",
      "line": 263,
      "text": "\"name\": \"Container Security Scan\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/exhaustive-test-report-1752531577800.json",
      "line": 159,
      "text": "\"name\": \"JA4 Storage - Security Initialization\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/exhaustive-test-report-1752531577800.json",
      "line": 357,
      "text": "\"name\": \"Container - Security Options\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/exhaustive-test-report-1752532327071.json",
      "line": 159,
      "text": "\"name\": \"JA4 Storage - Security Initialization\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/exhaustive-test-report-1752532327071.json",
      "line": 357,
      "text": "\"name\": \"Container - Security Options\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/master-test-report-1752531756255.json",
      "line": 18,
      "text": "\"stdout\": \"🚀 JA4 Sidecar Comprehensive Test Runner\\n=========================================\\nDiscovered containers: ja4-wildduck, ja4-sniffer, ja4-cli, ja4-mongodb, ja4-redis\\n\\n🏗️  Running Infrastructure Tests\\n========================"
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/master-test-report-1752531756255.json",
      "line": 19,
      "text": "\"stderr\": \"- Connecting to all services...\\n✔ Connected to all services\\n- Port 25 (smtp) Connectivity\\n✔ Port 25 (smtp) Connectivity (1ms)\\n- Port 587 (submission) Connectivity\\n✔ Port 587 (submission) Connectivity (1ms)\\n- Port 993 (imaps"
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/scenario-test-report-1752531843109.json",
      "line": 186,
      "text": "\"description\": \"Security incident response procedures\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/scenario-test-report-1752531843109.json",
      "line": 279,
      "text": "\"bankofamerica-security.com\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/scenario-test-report-1752531843109.json",
      "line": 283,
      "text": "\"google-security-alert.com\""
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/scenario-test-report-1752532082362.json",
      "line": 186,
      "text": "\"description\": \"Security incident response procedures\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/scenario-test-report-1752532082362.json",
      "line": 279,
      "text": "\"bankofamerica-security.com\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/scenario-test-report-1752532082362.json",
      "line": 283,
      "text": "\"google-security-alert.com\""
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/scenario-test-report-1752532289477.json",
      "line": 186,
      "text": "\"description\": \"Security incident response procedures\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/scenario-test-report-1752532289477.json",
      "line": 279,
      "text": "\"bankofamerica-security.com\","
    },
    {
      "kind": "security",
      "source_path": "archive/legacy-tests/scenario-test-report-1752532289477.json",
      "line": 283,
      "text": "\"google-security-alert.com\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 3,
      "text": "# JA4 Email Security Unified Management Script"
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 54,
      "text": "echo -e \"${PURPLE}[SECURITY]${NC} $1\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 122,
      "text": "# Production security checks"
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 128,
      "text": "log_security \"Performing production security checks...\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 159,
      "text": "log_error \"Found $issues security issues. Please resolve before production deployment\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 163,
      "text": "log_success \"Production security checks passed\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 396,
      "text": "log_info \"Starting JA4 Email Security stack (environment: $ENVIRONMENT)...\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 404,
      "text": "# Production security checks"
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 407,
      "text": "log_error \"Production security checks failed. Aborting startup\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 418,
      "text": "log_success \"JA4 Email Security stack started successfully\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 428,
      "text": "log_info \"Stopping JA4 Email Security stack...\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 440,
      "text": "log_success \"JA4 Email Security stack stopped (volumes preserved)\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 445,
      "text": "log_info \"Completely shutting down JA4 Email Security stack...\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 468,
      "text": "log_success \"JA4 Email Security stack completely shut down\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 472,
      "text": "log_info \"Restarting JA4 Email Security stack...\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 480,
      "text": "log_info \"Building JA4 Email Security services...\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 490,
      "text": "log_info \"JA4 Email Security Stack Status\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 536,
      "text": "log_success \"JA4 Email Security Stack is running!\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 1059,
      "text": "log_info \"🚀 JA4 Email Security Stack - Comprehensive Setup\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 1138,
      "text": "log_success \"🎉 JA4 Email Security Stack Setup Complete!\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 1174,
      "text": "# JA4 Email Security Configuration"
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 1197,
      "text": "echo \"🚀 JA4 Email Security Stack Management Script\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 1222,
      "text": "echo \"  test-security            Test real-world security scenarios\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-legacy.sh",
      "line": 1307,
      "text": "\"test-security\")"
    },
    {
      "kind": "security",
      "source_path": "archive/manage-new.sh",
      "line": 3,
      "text": "# JA4 Email Security Stack - Main Management Script"
    },
    {
      "kind": "security",
      "source_path": "archive/manage-new.sh",
      "line": 189,
      "text": "log_info \"🚀 JA4 Email Security Stack - Setup\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-new.sh",
      "line": 263,
      "text": "\"test-security\")"
    },
    {
      "kind": "security",
      "source_path": "archive/manage-new.sh",
      "line": 264,
      "text": "run_tests \"security\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 4,
      "text": "# Enhanced security and production-ready features"
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 48,
      "text": "echo -e \"${PURPLE}[SECURITY]${NC} $1\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 60,
      "text": "# Security checks"
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 62,
      "text": "log_security \"Running production security checks...\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 96,
      "text": "log_error \"$issues security issues found. Please fix before continuing.\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 100,
      "text": "log_success \"Production security checks passed\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 321,
      "text": "log_info \"=== Production Security Information ===\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 323,
      "text": "log_security \"🔒 Security Features Enabled:\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 326,
      "text": "echo \"  ✓ Container security policies applied\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 335,
      "text": "log_security \"🔍 Security Monitoring:\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 339,
      "text": "echo \"  • Email security validation\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 441,
      "text": "# Security scan"
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 443,
      "text": "log_security \"Running security scan...\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 472,
      "text": "log_success \"Security scan completed\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 586,
      "text": "echo \"  security-scan         Run security vulnerability scan\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 602,
      "text": "echo \"  $0 security-scan\""
    },
    {
      "kind": "security",
      "source_path": "archive/manage-production.sh",
      "line": 657,
      "text": "security-scan)"
    },
    {
      "kind": "security",
      "source_path": "archive/no-ssl.toml",
      "line": 46,
      "text": "customResponseHeaders = { \"Strict-Transport-Security\" = \"max-age=31536000; includeSubDomains\" }"
    },
    {
      "kind": "security",
      "source_path": "archive/no-ssl.toml",
      "line": 51,
      "text": "[http.middlewares.ja4plus-security-headers.headers]"
    },
    {
      "kind": "security",
      "source_path": "archive/no-ssl.toml",
      "line": 52,
      "text": "customResponseHeaders = { \"Strict-Transport-Security\" = \"max-age=31536000; includeSubDomains\" }"
    },
    {
      "kind": "security",
      "source_path": "config/traefik/ja4-config.toml",
      "line": 2,
      "text": "# This enables advanced TLS client fingerprinting for security analysis"
    },
    {
      "kind": "security",
      "source_path": "config/traefik/ja4-config.toml",
      "line": 19,
      "text": "# Security Headers with JA4+ Integration"
    },
    {
      "kind": "security",
      "source_path": "config/traefik/ja4-config.toml",
      "line": 20,
      "text": "[http.middlewares.security-headers]"
    },
    {
      "kind": "security",
      "source_path": "config/traefik/ja4-config.toml",
      "line": 21,
      "text": "[http.middlewares.security-headers.headers]"
    },
    {
      "kind": "security",
      "source_path": "config/traefik/ja4-config.toml",
      "line": 22,
      "text": "[http.middlewares.security-headers.headers.customRequestHeaders]"
    },
    {
      "kind": "security",
      "source_path": "config/traefik/ja4-config.toml",
      "line": 25,
      "text": "[http.middlewares.security-headers.headers.customResponseHeaders]"
    },
    {
      "kind": "security",
      "source_path": "config/traefik/ja4-config.toml",
      "line": 29,
      "text": "Strict-Transport-Security = \"max-age=31536000; includeSubDomains\""
    },
    {
      "kind": "unsafe",
      "source_path": "config/traefik/ja4-config.toml",
      "line": 30,
      "text": "Content-Security-Policy = \"default-src 'self'; script-src 'self' 'unsafe-inline'\""
    },
    {
      "kind": "security",
      "source_path": "config/traefik/ja4-config.toml",
      "line": 51,
      "text": "middlewares = [\"ja4-fingerprint\", \"security-headers\", \"rate-limit\"]"
    },
    {
      "kind": "security",
      "source_path": "config/traefik/ja4-config.toml",
      "line": 57,
      "text": "middlewares = [\"ja4-fingerprint\", \"security-headers\", \"rate-limit\"]"
    },
    {
      "kind": "security",
      "source_path": "config/traefik/ja4-plugin.yml",
      "line": 31,
      "text": "# Security options"
    },
    {
      "kind": "security",
      "source_path": "config/webmail/config.toml",
      "line": 141,
      "text": "[security]"
    },
    {
      "kind": "security",
      "source_path": "config/webmail/config.toml",
      "line": 144,
      "text": "# Added additional security headers"
    },
    {
      "kind": "security",
      "source_path": "config/webmail/no-ssl-fixed.toml",
      "line": 34,
      "text": "# Security settings for development"
    },
    {
      "kind": "security",
      "source_path": "config/webmail/no-ssl-fixed.toml",
      "line": 35,
      "text": "[security]"
    },
    {
      "kind": "security",
      "source_path": "config/webmail/no-ssl-fixed.toml",
      "line": 79,
      "text": "# JA4+ security enhancements"
    },
    {
      "kind": "security",
      "source_path": "config/webmail/no-ssl-fixed.toml",
      "line": 80,
      "text": "[ja4plus.security]"
    },
    {
      "kind": "security",
      "source_path": "config/webmail/no-ssl.toml",
      "line": 49,
      "text": "[security]"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 1,
      "text": "# JA4 Email Security Development Testing Guide"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 3,
      "text": "This guide helps you test the JA4 email security stack in development mode with the comprehensive modular test infrastructure."
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 52,
      "text": "- Security features"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 71,
      "text": "Real-world operational and security scenarios:"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 93,
      "text": "# Security profile (security-focused scenarios)"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 94,
      "text": "./manage.sh test orchestrator --profile security"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 138,
      "text": "#### Security Testing"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 141,
      "text": "# Test security scenarios and attack simulations"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 246,
      "text": "#### Check Security Events"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 248,
      "text": "The sniffer publishes security events to Redis channels that WildDuck can subscribe to:"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 253,
      "text": "PSUBSCRIBE \"security:*\""
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 268,
      "text": "# Inspect security events"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 286,
      "text": "KEYS \"*security*\""
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 305,
      "text": "tail -f logs/sniffer/security-events.log"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 331,
      "text": "# Check security events"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 340,
      "text": "4. Check security event correlation"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 407,
      "text": "4. **Security Event Monitoring:** Set up continuous monitoring:"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 424,
      "text": "3. **Redis channels** receiving security events"
    },
    {
      "kind": "security",
      "source_path": "DEVELOPMENT.md",
      "line": 428,
      "text": "The stack is designed to be lightweight for development while maintaining all the core functionality needed for email security monitoring and JA4 fingerprinting."
    },
    {
      "kind": "security",
      "source_path": "docker-compose.production.yml",
      "line": 320,
      "text": "echo 'Initializing JA4 database with security indexes...'"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 1,
      "text": "// Enhanced alert engine with security monitoring and threat detection"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 48,
      "text": "// TLS Security Rules"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 80,
      "text": "// Email Security Rules"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 102,
      "text": "// Container Security Rules"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 113,
      "text": "// Network Security Rules"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 127,
      "text": "// Certificate Security Rules"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 132,
      "text": "return data.certificate?.security?.isExpired === true;"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 140,
      "text": "return data.certificate?.security?.isSelfSigned === true;"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 186,
      "text": "subject: `🚨 JA4 Security Alert: ${alert.rule_name}`,"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 202,
      "text": "text: `🚨 JA4 Security Alert`,"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 238,
      "text": "<h2>🚨 JA4 Security Alert</h2>"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 247,
      "text": "<p><em>This alert was generated by the JA4 Security Monitoring System</em></p>"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 330,
      "text": "// Run comprehensive security checks every 5 minutes"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 335,
      "text": "// Generate security reports daily"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 388,
      "text": "logger.warn(`Security alert triggered: ${rule.name}`, {"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 414,
      "text": "logger.info('Running periodic security checks');"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/alert-engine.js",
      "line": 529,
      "text": "logger.info('Daily security report generated', report);"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/Dockerfile",
      "line": 16,
      "text": "# Create non-root user for security (using Alpine syntax)"
    },
    {
      "kind": "security",
      "source_path": "ja4-alerts/Dockerfile",
      "line": 47,
      "text": "# Security: Run as non-root user"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/Dockerfile",
      "line": 3,
      "text": "# Use non-root user for security"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 243,
      "text": "// Get security events"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 261,
      "text": "// Create a security event"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 276,
      "text": "logger.info(`Security event created: ${event.event_type}`);"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 301,
      "text": "const key = `${config.wildduckRedisPrefix}security:rules:${ip}`;"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 304,
      "text": "logger.info(`Security rule set for ${ip}: ${rule.action}`);"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 306,
      "text": "// Create a security event"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 505,
      "text": ".command('security')"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 506,
      "text": ".description('View security events')"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 511,
      "text": ".option('--create', 'create a new security event')"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 521,
      "text": "throw new Error('--event-type is required when creating a security event');"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 530,
      "text": "console.log(`Security event created with ID: ${event.insertedId}`);"
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/ja4-enhanced.js",
      "line": 596,
      "text": "console.log(`Security rule applied: ${options.action} ${options.ip}`);"
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-cli/package-lock.json",
      "line": 723,
      "text": "\"deprecated\": \"Use @eslint/config-array instead\","
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-cli/package-lock.json",
      "line": 778,
      "text": "\"deprecated\": \"Use @eslint/object-schema instead\","
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-cli/package-lock.json",
      "line": 2432,
      "text": "\"deprecated\": \"This version is no longer supported. Please see https://eslint.org/version-support for other options.\","
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-cli/package-lock.json",
      "line": 3141,
      "text": "\"deprecated\": \"Glob versions prior to v9 are no longer supported\","
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-cli/package-lock.json",
      "line": 3408,
      "text": "\"deprecated\": \"This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.\","
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-cli/package-lock.json",
      "line": 5381,
      "text": "\"deprecated\": \"Rimraf versions prior to v4 are no longer supported\","
    },
    {
      "kind": "security",
      "source_path": "ja4-cli/server.js",
      "line": 116,
      "text": "security: securityChecks,"
    },
    {
      "kind": "security",
      "source_path": "ja4-core/dns_utils.js",
      "line": 158,
      "text": "assessment.recommendations.push('Excellent email security configuration');"
    },
    {
      "kind": "security",
      "source_path": "ja4-core/dns_utils.js",
      "line": 162,
      "text": "console.error(`Error assessing email security for ${domain}:`, err.message);"
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-core/fingerprint.js",
      "line": 262,
      "text": "* Generate legacy JA4 fingerprint for mail protocols (deprecated)"
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-core/fingerprint.js",
      "line": 263,
      "text": "* @deprecated Use generateJA4 with proper JA4+ format instead"
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-core/fingerprint.js",
      "line": 274,
      "text": "console.warn('generateJA4_legacy is deprecated. Use generateJA4 with JA4+ standard format.');"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/Dockerfile",
      "line": 43,
      "text": "# Switch to non-root user for security (but with capabilities)"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 1,
      "text": "// Unified JA4 Email Security Sniffer for WildDuck Integration"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 65,
      "text": "// Security thresholds"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 98,
      "text": "filename: path.join(logsDir, 'email-security.log'),"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 105,
      "text": "filename: path.join(logsDir, 'security-alerts.log'),"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 631,
      "text": "await this.redisClient.publish(`${config.wildduckRedisPrefix}security:block`, JSON.stringify({"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 717,
      "text": "// Security analysis"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 736,
      "text": "// Log plaintext email connections (potential security issue)"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 747,
      "text": "security_score: 30 // Low security score for plaintext"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 771,
      "text": "await this.redisClient.publish(`${config.wildduckRedisPrefix}security:email`, JSON.stringify({"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 912,
      "text": "// Log security events"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 966,
      "text": "// Store email security data in Redis for WildDuck access"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 980,
      "text": "// Publish security event for WildDuck plugins"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 981,
      "text": "await this.redisClient.publish(`${config.wildduckRedisPrefix}security:email`, JSON.stringify({"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 1038,
      "text": "logger.error('Security Alert:', JSON.stringify(event));"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 1041,
      "text": "logger.warn('Security Warning:', JSON.stringify(event));"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 1044,
      "text": "logger.info('Security Info:', JSON.stringify(event));"
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/email-sniffer.js",
      "line": 1048,
      "text": "logger.error('Failed to log security event:', error);"
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-sniffer/package-lock.json",
      "line": 2534,
      "text": "\"deprecated\": \"Glob versions prior to v9 are no longer supported\","
    },
    {
      "kind": "deprecated",
      "source_path": "ja4-sniffer/package-lock.json",
      "line": 2719,
      "text": "\"deprecated\": \"This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.\","
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/package.json",
      "line": 4,
      "text": "\"description\": \"JA4 Email Security Sniffer with WildDuck integration\","
    },
    {
      "kind": "security",
      "source_path": "ja4-sniffer/package.json",
      "line": 24,
      "text": "\"keywords\": [\"ja4\", \"email\", \"security\", \"fingerprinting\", \"wildduck\"],"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 1,
      "text": "// Security initialization script for MongoDB"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 2,
      "text": "// Creates security-focused indexes and collections"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 4,
      "text": "// Create security-focused indexes"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 17,
      "text": "// Compound indexes for security queries"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 48,
      "text": "// Security alerts indexes"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 122,
      "text": "// Create security allowlists collection"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 153,
      "text": "// Create security policies collection"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 178,
      "text": "description: 'Email security requirements',"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 195,
      "text": "description: 'API security requirements',"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 264,
      "text": "alert_recipients: ['security@example.com'],"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 265,
      "text": "webhook_url: 'https://example.com/security/webhook'"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 270,
      "text": "print(\"Security initialization completed successfully\");"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 273,
      "text": "print(\"Configured security indexes for optimal query performance\");"
    },
    {
      "kind": "security",
      "source_path": "ja4-storage/init_security.js",
      "line": 274,
      "text": "print(\"Created baseline security configurations and policies\");"
    },
    {
      "kind": "security",
      "source_path": "manage.sh",
      "line": 3,
      "text": "# JA4 Email Security Stack - Main Management Script"
    },
    {
      "kind": "security",
      "source_path": "manage.sh",
      "line": 189,
      "text": "log_info \"🚀 JA4 Email Security Stack - Setup\""
    },
    {
      "kind": "security",
      "source_path": "manage.sh",
      "line": 269,
      "text": "\"test-security\")"
    },
    {
      "kind": "security",
      "source_path": "manage.sh",
      "line": 270,
      "text": "run_tests \"security\""
    },
    {
      "kind": "security",
      "source_path": "manage.sh",
      "line": 320,
      "text": "# JA4 Email Security Stack - Main Management Script"
    },
    {
      "kind": "security",
      "source_path": "manage.sh",
      "line": 506,
      "text": "log_info \"🚀 JA4 Email Security Stack - Setup\""
    },
    {
      "kind": "security",
      "source_path": "manage.sh",
      "line": 580,
      "text": "\"test-security\")"
    },
    {
      "kind": "security",
      "source_path": "manage.sh",
      "line": 581,
      "text": "run_tests \"security\""
    },
    {
      "kind": "security",
      "source_path": "README.md",
      "line": 42,
      "text": "- **Scenarios**: Real-world operational and security scenarios"
    },
    {
      "kind": "security",
      "source_path": "README.md",
      "line": 57,
      "text": "./manage.sh test orchestrator --profile security"
    },
    {
      "kind": "security",
      "source_path": "scripts/commands/testing.sh",
      "line": 54,
      "text": "security)"
    },
    {
      "kind": "security",
      "source_path": "scripts/commands/testing.sh",
      "line": 55,
      "text": "node security-test-suite.js"
    },
    {
      "kind": "security",
      "source_path": "scripts/commands/testing.sh",
      "line": 638,
      "text": "\"security\")"
    },
    {
      "kind": "security",
      "source_path": "scripts/commands/testing.sh",
      "line": 639,
      "text": "run_node_tests \"security\""
    },
    {
      "kind": "security",
      "source_path": "scripts/commands/testing.sh",
      "line": 707,
      "text": "echo \"  database-stress, services, monitoring, load, security\""
    },
    {
      "kind": "security",
      "source_path": "scripts/commands/testing.sh",
      "line": 933,
      "text": "echo \"  security         Run security tests\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/common.sh",
      "line": 37,
      "text": "echo -e \"${PURPLE}[SECURITY]${NC} $1\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 13,
      "text": "echo \"🚀 JA4 Email Security Stack Management Script\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 36,
      "text": "echo \"  test-security            Test security scenarios\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 43,
      "text": "echo \"  report [type]            Generate reports (types: daily, security, anomaly)\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 89,
      "text": "echo \"  $0 help security         # Show security documentation\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 129,
      "text": "echo \"  test-security      Security scenarios and anomaly detection tests\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 140,
      "text": "echo \"  report security            Generate security anomaly report\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 159,
      "text": "echo \"  secrets-rotate     Rotate security credentials\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 209,
      "text": "echo \"5. SECURITY SCENARIO TESTS:\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 212,
      "text": "echo \"   • Security event logging\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 437,
      "text": "echo \"  # Security\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 475,
      "text": "# Show security help"
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 478,
      "text": "echo \"🔒 SECURITY DOCUMENTATION\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 482,
      "text": "echo \"🛡️ SECURITY FEATURES:\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 493,
      "text": "echo \"🔧 SECURITY CONFIGURATION:\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 504,
      "text": "echo \"  3. API Security:\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 509,
      "text": "echo \"  4. Database Security:\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 515,
      "text": "echo \"🔍 SECURITY MONITORING:\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 517,
      "text": "echo \"  • Security event logging\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 523,
      "text": "echo \"  ./manage.sh logs ja4-alerts         # Security alert logs\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 524,
      "text": "echo \"  ./manage.sh report security         # Security report\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 525,
      "text": "echo \"  ./manage.sh test-security           # Run security tests\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 528,
      "text": "echo \"🚨 SECURITY ALERTS:\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 535,
      "text": "echo \"  ALERT_EMAIL=security@example.com\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 550,
      "text": "echo \"📋 SECURITY BEST PRACTICES:\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 554,
      "text": "echo \"  4. Regular security audits\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 586,
      "text": "echo \"  Email Security:\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 663,
      "text": "\"security\"|\"secure\")"
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/help.sh",
      "line": 677,
      "text": "echo \"  security         - Security documentation\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/services.sh",
      "line": 12,
      "text": "log_info \"Starting JA4 Email Security stack...\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/services.sh",
      "line": 35,
      "text": "log_success \"JA4 Email Security stack started successfully\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/services.sh",
      "line": 47,
      "text": "log_info \"Stopping JA4 Email Security stack...\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/services.sh",
      "line": 59,
      "text": "log_success \"JA4 Email Security stack stopped (volumes preserved)\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/services.sh",
      "line": 64,
      "text": "log_info \"Completely shutting down JA4 Email Security stack...\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/services.sh",
      "line": 87,
      "text": "log_success \"JA4 Email Security stack completely shut down\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/services.sh",
      "line": 92,
      "text": "log_info \"Restarting JA4 Email Security stack...\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/services.sh",
      "line": 101,
      "text": "log_info \"Building JA4 Email Security services...\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/services.sh",
      "line": 112,
      "text": "log_success \"🚀 JA4 Email Security Stack is running!\""
    },
    {
      "kind": "security",
      "source_path": "scripts/lib/services.sh",
      "line": 136,
      "text": "log_info \"JA4 Email Security Stack Status\""
    },
    {
      "kind": "security",
      "source_path": "scripts/tests/comprehensive-test-report.json",
      "line": 263,
      "text": "\"name\": \"Container Security Scan\","
    },
    {
      "kind": "deprecated",
      "source_path": "scripts/tests/package-lock.json",
      "line": 2202,
      "text": "\"deprecated\": \"Glob versions prior to v9 are no longer supported\","
    },
    {
      "kind": "deprecated",
      "source_path": "scripts/tests/package-lock.json",
      "line": 2358,
      "text": "\"deprecated\": \"This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.\","
    },
    {
      "kind": "security",
      "source_path": "scripts/tests/package.json",
      "line": 18,
      "text": "\"test:security\": \"node comprehensive-test-runner.js --type=security\","
    },
    {
      "kind": "security",
      "source_path": "scripts/tests/package.json",
      "line": 63,
      "text": "\"keywords\": [\"ja4\", \"fingerprinting\", \"testing\", \"security\", \"email\", \"load-testing\", \"performance\", \"monitoring\", \"infrastructure\"],"
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [],
    "sensitive_data_indicators": [
      {
        "name": "api_key",
        "confidence": "medium",
        "evidence_paths": [
          ".env",
          ".env.production",
          "archive/legacy-tests/scenario-test-report-1752531843109.json",
          "archive/legacy-tests/scenario-test-report-1752532082362.json",
          "archive/legacy-tests/scenario-test-report-1752532289477.json",
          "config/ja4-plus/ja4-config.json",
          "config/traefik/ja4-config.toml",
          "config/webmail/no-ssl-fixed.toml",
          "config/wildduck/no-ssl-fixed.toml",
          "ja4-cli/ja4-enhanced.js",
          "ja4-sniffer/email-sniffer.js",
          "scripts/lib/help.sh"
        ]
      },
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          "ja4-core/cert_utils.js"
        ]
      },
      {
        "name": "email",
        "confidence": "medium",
        "evidence_paths": [
          ".env",
          ".env.production",
          "archive/dev-manage.sh",
          "archive/DEVELOPMENT.md",
          "archive/legacy-tests/comprehensive-test-report.json",
          "archive/legacy-tests/exhaustive-test-report-1752531577800.json",
          "archive/legacy-tests/exhaustive-test-report-1752532327071.json",
          "archive/legacy-tests/master-test-report-1752531756255.json",
          "archive/legacy-tests/scenario-test-report-1752531843109.json",
          "archive/legacy-tests/scenario-test-report-1752532082362.json",
          "archive/legacy-tests/scenario-test-report-1752532289477.json",
          "archive/legacy-tests/test-report.json",
          "archive/manage-legacy.sh",
          "archive/manage-new.sh",
          "archive/manage-production.sh",
          "archive/manage.sh",
          "config/ja4-plus/ja4-config.json",
          "config/webmail/config.toml",
          "config/webmail/email2letter-config.toml",
          "config/wildduck/api.toml"
        ]
      },
      {
        "name": "financial",
        "confidence": "medium",
        "evidence_paths": [
          "archive/legacy-tests/scenario-test-report-1752531843109.json",
          "archive/legacy-tests/scenario-test-report-1752532082362.json",
          "archive/legacy-tests/scenario-test-report-1752532289477.json"
        ]
      },
      {
        "name": "fingerprint",
        "confidence": "medium",
        "evidence_paths": [
          "archive/DEVELOPMENT.md",
          "archive/legacy-tests/comprehensive-test-report.json",
          "archive/legacy-tests/exhaustive-test-report-1752531577800.json",
          "archive/legacy-tests/exhaustive-test-report-1752532327071.json",
          "archive/legacy-tests/master-test-report-1752531756255.json",
          "archive/legacy-tests/scenario-test-report-1752531843109.json",
          "archive/legacy-tests/scenario-test-report-1752532082362.json",
          "archive/legacy-tests/scenario-test-report-1752532289477.json",
          "archive/legacy-tests/test-report.json",
          "archive/manage-legacy.sh",
          "archive/manage-new.sh",
          "config/ja4-plus/ja4-config.json",
          "config/ja4-plus/ja4-service.yml",
          "config/traefik/ja4-config.toml",
          "config/traefik/ja4-plugin.yml",
          "config/webmail/no-ssl-fixed.toml",
          "config/wildduck/no-ssl-fixed.toml",
          "DEVELOPMENT.md",
          "docs/alerts.md",
          "docs/core.md"
        ]
      },
      {
        "name": "health",
        "confidence": "medium",
        "evidence_paths": [
          ".env",
          ".env.example",
          ".env.production",
          "archive/dev-manage.sh",
          "archive/DEVELOPMENT.md",
          "archive/legacy-tests/comprehensive-test-report.json",
          "archive/legacy-tests/exhaustive-test-report-1752531577800.json",
          "archive/legacy-tests/exhaustive-test-report-1752532327071.json",
          "archive/legacy-tests/master-test-report-1752531756255.json",
          "archive/legacy-tests/scenario-test-report-1752531843109.json",
          "archive/legacy-tests/scenario-test-report-1752532082362.json",
          "archive/legacy-tests/scenario-test-report-1752532289477.json",
          "archive/manage-legacy.sh",
          "archive/manage-new.sh",
          "archive/manage-production.sh",
          "archive/manage.sh",
          "config/ja4-plus/ja4-config.json",
          "config/ja4-plus/ja4-service.yml",
          "DEVELOPMENT.md",
          "docker-compose.production.yml"
        ]
      },
      {
        "name": "ip address",
        "confidence": "medium",
        "evidence_paths": [
          "ja4-cli/ja4-cli.js",
          "ja4-cli/ja4-enhanced.js",
          "ja4-core/geo_enrich.js",
          "ja4-sniffer/lib/container_monitor.js",
          "ja4-storage/schema.js"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          "ja4-core/geo_enrich.js",
          "ja4-storage/schema.js",
          "monitoring/loki.yml"
        ]
      },
      {
        "name": "oauth",
        "confidence": "medium",
        "evidence_paths": [
          "ja4-storage/init_security.js"
        ]
      },
      {
        "name": "password",
        "confidence": "medium",
        "evidence_paths": [
          ".env",
          ".env.production",
          "archive/manage-legacy.sh",
          "archive/manage-production.sh",
          "config/ja4-plus/ja4-config.json",
          "config/webmail/config.toml",
          "config/wildduck-dbs.toml",
          "config/wildduck/api.toml",
          "config/wildduck/dbs-no-ssl.toml",
          "config/wildduck/default.toml",
          "config/wildduck/redis.toml",
          "config/wildduck/roles.json",
          "docker-compose.production.yml",
          "docker-compose.yml",
          "ja4-alerts/alert-engine.js",
          "scripts/commands/testing.sh",
          "scripts/install-wildduck.sh",
          "scripts/lib/help.sh",
          "secrets/mongodb_root_password.txt"
        ]
      },
      {
        "name": "pii",
        "confidence": "medium",
        "evidence_paths": [
          "ja4-cli/package-lock.json",
          "ja4-sniffer/package-lock.json",
          "scripts/tests/package-lock.json"
        ]
      },
      {
        "name": "secret-like environment variables",
        "confidence": "medium",
        "evidence_paths": [
          "package.json"
        ]
      },
      {
        "name": "token",
        "confidence": "medium",
        "evidence_paths": [
          ".env",
          ".env.production",
          "config/webmail/config.toml",
          "config/webmail/email2letter-config.toml",
          "config/webmail/no-ssl-fixed.toml",
          "config/webmail/no-ssl.toml",
          "config/wildduck/api.toml",
          "config/wildduck/default.toml",
          "config/wildduck/minimal.toml",
          "config/wildduck/no-ssl-fixed.toml",
          "config/wildduck/no-ssl.toml",
          "config/wildduck/wildduck.toml",
          "ja4-cli/package-lock.json",
          "ja4-sniffer/package-lock.json",
          "scripts/lib/help.sh",
          "scripts/tests/package-lock.json"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:09.186Z"
}
