add new proofsystem
This commit is contained in:
1 parent
2399cb1f2d
commit
5e97a66d31
2 files changed
+24
-77
No files matched your search
+24
-20
@@ -20,7 +20,12 @@
|
|||||||
"create-admin": "ts-node scripts/create_admin_user.ts",
|
"create-admin": "ts-node scripts/create_admin_user.ts",
|
||||||
"worker": "ts-node src/workers/startWorker.ts",
|
"worker": "ts-node src/workers/startWorker.ts",
|
||||||
"install-deps": "npm install ua-parser-js uuid axios xlsx html2canvas puppeteer-core chrome-aws-lambda jspdf canvas ws socket.io socket.io-client",
|
"install-deps": "npm install ua-parser-js uuid axios xlsx html2canvas puppeteer-core chrome-aws-lambda jspdf canvas ws socket.io socket.io-client",
|
||||||
"install-web-proof-deps": "npm install html2canvas puppeteer-core chrome-aws-lambda jspdf canvas node-html-to-image playwright ws socket.io socket.io-client"
|
"install-web-proof-deps": "npm install html2canvas puppeteer-core chrome-aws-lambda jspdf canvas node-html-to-image playwright ws socket.io socket.io-client",
|
||||||
|
"prisma:resolve-migration": "npx prisma migrate resolve --applied",
|
||||||
|
"prisma:sync-schema": "npx prisma db push && npx prisma generate",
|
||||||
|
"prisma:reset-migrations": "npx prisma migrate reset --force",
|
||||||
|
"prisma:fix-manual-migration": "npx prisma migrate status && npx prisma db push && npx prisma generate",
|
||||||
|
"prisma:mark-applied": "npx prisma migrate resolve --applied"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/react": "^11.11.3",
|
"@emotion/react": "^11.11.3",
|
||||||
@@ -51,8 +56,7 @@
|
|||||||
"opentimestamps-javascript": "^1.0.1",
|
"opentimestamps-javascript": "^1.0.1",
|
||||||
"pdf-lib": "^1.17.1",
|
"pdf-lib": "^1.17.1",
|
||||||
"html2canvas": "^1.4.1",
|
"html2canvas": "^1.4.1",
|
||||||
"puppeteer-core": "^21.11.0",
|
"puppeteer-core": "^24.15.0",
|
||||||
"chrome-aws-lambda": "^10.1.0",
|
|
||||||
"jspdf": "^2.5.1",
|
"jspdf": "^2.5.1",
|
||||||
"canvas": "^3.1.2",
|
"canvas": "^3.1.2",
|
||||||
"screenshot-desktop": "^1.12.7",
|
"screenshot-desktop": "^1.12.7",
|
||||||
@@ -96,34 +100,34 @@
|
|||||||
"@vitejs/plugin-react": "^4.3.4",
|
"@vitejs/plugin-react": "^4.3.4",
|
||||||
"autoprefixer": "^10.4.17",
|
"autoprefixer": "^10.4.17",
|
||||||
"concurrently": "^9.1.2",
|
"concurrently": "^9.1.2",
|
||||||
"eslint": "^9.23.0",
|
"eslint": "^9.23.0",er": "^5.2.5",
|
||||||
"eslint-config-prettier": "^10.1.1",
|
"eslint-plugin-react-hooks": "^5.2.0",: "^7.37.4",
|
||||||
"eslint-plugin-prettier": "^5.2.5",
|
"postcss": "^8.4.33",t-hooks": "^5.2.0",
|
||||||
"eslint-plugin-react": "^7.37.4",
|
|
||||||
"eslint-plugin-react-hooks": "^5.2.0",
|
|
||||||
"postcss": "^8.4.33",
|
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"prisma": "^6.5.0",
|
"prisma": "^6.5.0",
|
||||||
"tailwindcss": "^3.4.1",
|
"tailwindcss": "^3.4.1",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",3.4.1",
|
||||||
"typescript": "^5.8.2",
|
"typescript": "^5.8.2",
|
||||||
"vite": "^6.2.4",
|
"vite": "^6.2.4",
|
||||||
"@types/html2canvas": "^1.0.0",
|
"@types/html2canvas": "^1.0.0",
|
||||||
"@types/canvas": "^2.11.6",
|
"@types/canvas": "^2.11.6","@types/html2canvas": "^1.0.0",
|
||||||
"@types/node-html-to-image": "^4.0.0"
|
"@types/node-html-to-image": "^4.0.0"anvas": "^2.11.6",
|
||||||
},
|
},.0.0"
|
||||||
"prisma": {
|
"prisma": {
|
||||||
"seed": "ts-node prisma/seed.ts"
|
"seed": "ts-node prisma/seed.ts"
|
||||||
},
|
},prisma/seed.ts"
|
||||||
"puppeteer": {
|
"puppeteer": {
|
||||||
"headless": true,
|
"headless": true,
|
||||||
"args": [
|
"args": [
|
||||||
"--no-sandbox",
|
"--no-sandbox",
|
||||||
"--disable-setuid-sandbox",
|
"--disable-setuid-sandbox",
|
||||||
"--disable-dev-shm-usage",
|
"--disable-dev-shm-usage",d-sandbox",
|
||||||
"--disable-accelerated-2d-canvas",
|
"--disable-accelerated-2d-canvas",,
|
||||||
"--disable-gpu",
|
"--disable-gpu", "--disable-accelerated-2d-canvas",
|
||||||
"--window-size=1920x1080"
|
"--window-size=1920x1080" "--disable-gpu",
|
||||||
]
|
] "--window-size=1920x1080"
|
||||||
}
|
} ]
|
||||||
|
|
||||||
|
|
||||||
|
} }
|
||||||
}
|
}
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
-- Migration para sistema de captura web de provas
|
|
||||||
-- NÃO RESETAR O BANCO DE DADOS - apenas adicionar nova tabela
|
|
||||||
|
|
||||||
-- Criar tabela para sessões de captura web
|
|
||||||
CREATE TABLE IF NOT EXISTS "web_proof_sessions" (
|
|
||||||
"id" TEXT NOT NULL,
|
|
||||||
"sessionId" TEXT NOT NULL UNIQUE,
|
|
||||||
"targetUrl" TEXT NOT NULL,
|
|
||||||
"description" TEXT,
|
|
||||||
"status" TEXT NOT NULL DEFAULT 'PENDENTE',
|
|
||||||
"metadata" JSONB,
|
|
||||||
"environment" JSONB,
|
|
||||||
"screenshots" TEXT[],
|
|
||||||
"sessionHash" TEXT,
|
|
||||||
"contentHash" TEXT,
|
|
||||||
"pageHash" TEXT,
|
|
||||||
"reportPath" TEXT,
|
|
||||||
"networkData" JSONB,
|
|
||||||
"trustedTimestamp" TEXT,
|
|
||||||
"error" TEXT,
|
|
||||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"processedAt" TIMESTAMP(3),
|
|
||||||
|
|
||||||
CONSTRAINT "web_proof_sessions_pkey" PRIMARY KEY ("id")
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Criar índices para otimização de consultas
|
|
||||||
CREATE INDEX IF NOT EXISTS "web_proof_sessions_sessionId_idx" ON "web_proof_sessions"("sessionId");
|
|
||||||
CREATE INDEX IF NOT EXISTS "web_proof_sessions_status_idx" ON "web_proof_sessions"("status");
|
|
||||||
CREATE INDEX IF NOT EXISTS "web_proof_sessions_createdAt_idx" ON "web_proof_sessions"("createdAt");
|
|
||||||
CREATE INDEX IF NOT EXISTS "web_proof_sessions_contentHash_idx" ON "web_proof_sessions"("contentHash");
|
|
||||||
|
|
||||||
-- Adicionar trigger para atualizar updatedAt automaticamente
|
|
||||||
CREATE OR REPLACE FUNCTION update_web_proof_sessions_updated_at()
|
|
||||||
RETURNS TRIGGER AS $$
|
|
||||||
BEGIN
|
|
||||||
NEW."updatedAt" = CURRENT_TIMESTAMP;
|
|
||||||
RETURN NEW;
|
|
||||||
END;
|
|
||||||
$$ language 'plpgsql';
|
|
||||||
|
|
||||||
CREATE TRIGGER update_web_proof_sessions_updated_at
|
|
||||||
BEFORE UPDATE ON "web_proof_sessions"
|
|
||||||
FOR EACH ROW
|
|
||||||
EXECUTE FUNCTION update_web_proof_sessions_updated_at();
|
|
||||||
|
|
||||||
-- Adicionar comentários para documentação
|
|
||||||
COMMENT ON TABLE "web_proof_sessions" IS 'Tabela para armazenar sessões de captura de provas web forenses';
|
|
||||||
COMMENT ON COLUMN "web_proof_sessions"."sessionId" IS 'Identificador único da sessão de captura';
|
|
||||||
COMMENT ON COLUMN "web_proof_sessions"."targetUrl" IS 'URL alvo que foi capturada';
|
|
||||||
COMMENT ON COLUMN "web_proof_sessions"."metadata" IS 'Metadados técnicos coletados durante a captura';
|
|
||||||
COMMENT ON COLUMN "web_proof_sessions"."environment" IS 'Informações do ambiente isolado de captura';
|
|
||||||
COMMENT ON COLUMN "web_proof_sessions"."sessionHash" IS 'Hash SHA-256 da sessão para verificação de integridade';
|
|
||||||
COMMENT ON COLUMN "web_proof_sessions"."contentHash" IS 'Hash SHA-256 do conteúdo capturado';
|
|
||||||
COMMENT ON COLUMN "web_proof_sessions"."pageHash" IS 'Hash SHA-512 da página específica';
|
|
||||||
COMMENT ON COLUMN "web_proof_sessions"."trustedTimestamp" IS 'Timestamp de autoridade certificadora confiável';
|
|
||||||
Reference in new issue
Block a user