tractatus/package.json
TheFlow 7387cb9807 security: implement file upload security with ClamAV integration (inst_041)
Phase 1: File Security Complete
 Created file-security.middleware.js with multi-layer validation
 Installed multer for file uploads
 Created quarantine directories on production and dev
 Integrated ClamAV malware scanning

Features:
- Magic number validation (prevents MIME spoofing)
- ClamAV malware scanning (8.7M signatures)
- Automatic file quarantine with metadata
- Size limits: 10MB documents, 50MB media
- MIME type whitelist enforcement
- Comprehensive security event logging

Middleware provides:
- createSecureUpload() - Full pipeline (multer + security)
- createFileSecurityMiddleware() - Validation only
- Quarantine system with JSON metadata

Implements: inst_041 (file upload validation)
Refs: docs/plans/security-implementation-roadmap.md Phase 2-P2-2

ClamAV Status:
- Version: 1.4.3
- Signatures: 8,724,466
- Daemon: Running (521MB RAM)
- Test: EICAR detection confirmed
2025-10-14 15:58:48 +13:00

81 lines
2.7 KiB
JSON

{
"name": "tractatus-website",
"version": "0.1.0",
"description": "Tractatus-Based LLM Safety Framework website platform",
"main": "src/server.js",
"scripts": {
"start": "node src/server.js",
"dev": "concurrently -n \"SERVER,WATCHDOG\" -c \"cyan,magenta\" \"nodemon src/server.js\" \"node scripts/framework-watchdog.js\"",
"dev:simple": "nodemon src/server.js",
"build:css": "npx tailwindcss -i ./public/css/src/tailwind.css -o ./public/css/tailwind.css --minify",
"watch:css": "npx tailwindcss -i ./public/css/src/tailwind.css -o ./public/css/tailwind.css --watch",
"update:cache": "node scripts/update-cache-version.js",
"build": "npm run update:cache && npm run build:css",
"test": "jest --coverage",
"test:watch": "jest --watch",
"test:unit": "jest tests/unit",
"test:integration": "jest tests/integration",
"test:security": "jest tests/security",
"lint": "eslint src/ tests/",
"lint:fix": "eslint src/ tests/ --fix",
"migrate:docs": "node scripts/migrate-documents.js",
"init:db": "node scripts/init-db.js",
"init:koha": "node scripts/init-koha.js",
"seed:admin": "node scripts/seed-admin.js",
"seed:projects": "node scripts/seed-projects.js",
"generate:pdfs": "node scripts/generate-pdfs.js",
"deploy": "npm run build && bash scripts/deploy-frontend.sh",
"framework:init": "node scripts/session-init.js",
"framework:watchdog": "node scripts/framework-watchdog.js",
"framework:check": "node scripts/pre-action-check.js",
"framework:recover": "node scripts/recover-framework.js"
},
"keywords": [
"ai-safety",
"llm",
"tractatus",
"digital-sovereignty",
"ai-governance"
],
"author": "John Stroh <john.stroh.nz@pm.me>",
"license": "Apache-2.0",
"dependencies": {
"bcrypt": "^5.1.1",
"cookie-parser": "^1.4.7",
"cors": "^2.8.5",
"csurf": "^1.11.0",
"dotenv": "^16.3.1",
"express": "^4.18.2",
"express-rate-limit": "^7.5.1",
"helmet": "^7.1.0",
"highlight.js": "^11.9.0",
"jsonwebtoken": "^9.0.2",
"marked": "^11.0.0",
"mongodb": "^6.3.0",
"mongoose": "^8.19.1",
"multer": "^2.0.2",
"puppeteer": "^24.23.0",
"sanitize-html": "^2.11.0",
"stripe": "^14.25.0",
"validator": "^13.15.15",
"winston": "^3.11.0"
},
"devDependencies": {
"@anthropic-ai/sdk": "^0.65.0",
"autoprefixer": "^10.4.21",
"axe-core": "^4.10.3",
"concurrently": "^9.2.1",
"eslint": "^8.56.0",
"jest": "^29.7.0",
"nodemon": "^3.0.2",
"pa11y": "^9.0.1",
"pa11y-reporter-html": "^2.0.0",
"postcss": "^8.5.6",
"supertest": "^6.3.3",
"tailwindcss": "^3.4.18"
},
"engines": {
"node": ">=18.0.0",
"npm": ">=9.0.0"
}
}