add new proofsystem

This commit is contained in:
rodrigo committed 2025-07-27 19:35:53 -03:00
1 parent 2399cb1f2d
commit fe6f65447b
2 files changed
+7 -63

No files matched your search

+7 -6
View File
@@ -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",
@@ -97,9 +101,6 @@
"autoprefixer": "^10.4.17", "autoprefixer": "^10.4.17",
"concurrently": "^9.1.2", "concurrently": "^9.1.2",
"eslint": "^9.23.0", "eslint": "^9.23.0",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-prettier": "^5.2.5",
"eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-hooks": "^5.2.0",
"postcss": "^8.4.33", "postcss": "^8.4.33",
"prettier": "^3.5.3", "prettier": "^3.5.3",
@@ -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';