pompelmi 0.34.0 β 0.34.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -0
- package/package.json +15 -5
package/README.md
CHANGED
|
@@ -499,6 +499,67 @@ Scan files or build artifacts in CI with a single step:
|
|
|
499
499
|
|
|
500
500
|
---
|
|
501
501
|
|
|
502
|
+
## π’ Pompelmi Enterprise
|
|
503
|
+
|
|
504
|
+
> The open-source `pompelmi` core is **MIT-licensed and always will be** β actively maintained, freely available, no strings attached. `@pompelmi/enterprise` is an optional commercial plugin for teams that need compliance evidence, production observability, and operational tooling on top.
|
|
505
|
+
|
|
506
|
+
### What Enterprise adds
|
|
507
|
+
|
|
508
|
+
| Feature | Core (Free, MIT) | Enterprise |
|
|
509
|
+
|---|:---:|:---:|
|
|
510
|
+
| File scanning, heuristics, YARA | β
| β
|
|
|
511
|
+
| Framework adapters (Express, Next.js, NestJSβ¦) | β
| β
|
|
|
512
|
+
| Quarantine workflow & policy packs | β
| β
|
|
|
513
|
+
| **Advanced Audit Logging (SIEM-compatible)** | β | β
|
|
|
514
|
+
| **HMAC-signed tamper-evident log entries** | β | β
|
|
|
515
|
+
| **File / Webhook / Console log sinks** | β | β
|
|
|
516
|
+
| **On-disk audit log query API** | β | β
|
|
|
517
|
+
| **Premium YARA Rules** (WannaCry, Cobalt Strike, XMRig, Mimikatz, LOLBAS) | β | β
|
|
|
518
|
+
| **Prometheus Metrics endpoint** | β | β
|
|
|
519
|
+
| **Embedded Web GUI Dashboard** | β | β
|
|
|
520
|
+
| **Priority support & response SLA** | β | β
|
|
|
521
|
+
|
|
522
|
+
### Who it's for
|
|
523
|
+
|
|
524
|
+
- **Compliance teams** β HMAC-signed NDJSON audit logs satisfy SOC 2, HIPAA, ISO 27001, and PCI-DSS evidence requirements. Routes to file, console, or a SIEM webhook β no file bytes ever leave your infrastructure.
|
|
525
|
+
- **Security operations** β live Prometheus metrics (blocked files, YARA hits by category, p95 scan latency) feed directly into your existing Grafana dashboards, zero custom instrumentation required.
|
|
526
|
+
- **Platform / DevSecOps teams** β zero-config embedded web GUI shows scan activity in real time. No build step, no SaaS, no data egress. Five curated premium YARA rules (ransomware, APT, miner, LOLBAS) loaded automatically.
|
|
527
|
+
|
|
528
|
+
### Drop-in integration (30 seconds)
|
|
529
|
+
|
|
530
|
+
```bash
|
|
531
|
+
npm install @pompelmi/enterprise
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
```ts
|
|
535
|
+
import Pompelmi from 'pompelmi';
|
|
536
|
+
import { PompelmiEnterprise } from '@pompelmi/enterprise';
|
|
537
|
+
|
|
538
|
+
const enterprise = await PompelmiEnterprise.create({
|
|
539
|
+
licenseKey: process.env.POMPELMI_LICENSE_KEY,
|
|
540
|
+
auditLogger: { sinks: ['file'], hmac: true, hmacSecret: process.env.AUDIT_HMAC_SECRET },
|
|
541
|
+
dashboard: { enabled: true, port: 3742 },
|
|
542
|
+
});
|
|
543
|
+
|
|
544
|
+
const scanner = new Pompelmi();
|
|
545
|
+
enterprise.injectInto(scanner); // loads premium YARA rules + hooks all scan events
|
|
546
|
+
|
|
547
|
+
const results = await scanner.scan('/srv/uploads');
|
|
548
|
+
// β audit log β ./pompelmi-audit/audit-YYYY-MM-DD.ndjson
|
|
549
|
+
// β metrics β http://localhost:3742/metrics
|
|
550
|
+
// β dashboard β http://localhost:3742
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
<div align="center">
|
|
554
|
+
|
|
555
|
+
[](https://buy.polar.sh/polar_cl_sTQdCkfdsz6D0lyLRIKKB7MJCnmBm6mfsOmTr2l2fqn)
|
|
556
|
+
|
|
557
|
+
**[View full feature comparison and pricing β](https://pompelmi.github.io/pompelmi/enterprise)**
|
|
558
|
+
|
|
559
|
+
</div>
|
|
560
|
+
|
|
561
|
+
---
|
|
562
|
+
|
|
502
563
|
## π Security
|
|
503
564
|
|
|
504
565
|
- pompelmi **reads** bytes β it never executes uploaded files.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pompelmi",
|
|
3
|
-
"version": "0.34.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.34.1",
|
|
4
|
+
"description": "In-process file upload security for Node.js β no cloud API, no daemon, no data egress. TypeScript-first library with Express, Next.js, NestJS, Fastify, Koa, and Nuxt/Nitro adapters. Features magic-byte MIME validation, ZIP bomb protection, YARA integration, and layered heuristic scanning. Built for privacy-sensitive and self-hosted environments.",
|
|
5
5
|
"main": "./dist/pompelmi.cjs",
|
|
6
6
|
"module": "./dist/pompelmi.esm.js",
|
|
7
7
|
"type": "module",
|
|
@@ -146,8 +146,12 @@
|
|
|
146
146
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
147
147
|
},
|
|
148
148
|
"peerDependenciesMeta": {
|
|
149
|
-
"react": {
|
|
150
|
-
|
|
149
|
+
"react": {
|
|
150
|
+
"optional": true
|
|
151
|
+
},
|
|
152
|
+
"react-dom": {
|
|
153
|
+
"optional": true
|
|
154
|
+
}
|
|
151
155
|
},
|
|
152
156
|
"optionalDependencies": {
|
|
153
157
|
"@litko/yara-x": "^0.2.1"
|
|
@@ -213,6 +217,8 @@
|
|
|
213
217
|
"keywords": [
|
|
214
218
|
"malware-scanner",
|
|
215
219
|
"file-upload-security",
|
|
220
|
+
"secure-file-upload",
|
|
221
|
+
"upload-security",
|
|
216
222
|
"virus-scanner",
|
|
217
223
|
"antivirus",
|
|
218
224
|
"malware-detection",
|
|
@@ -228,11 +234,14 @@
|
|
|
228
234
|
"fastify-plugin",
|
|
229
235
|
"nextjs",
|
|
230
236
|
"next-js",
|
|
237
|
+
"nestjs",
|
|
238
|
+
"nuxt",
|
|
231
239
|
"nodejs-security",
|
|
232
240
|
"typescript-security",
|
|
233
241
|
"file-validation",
|
|
234
242
|
"upload-sanitization",
|
|
235
243
|
"mime-type-validation",
|
|
244
|
+
"magic-bytes",
|
|
236
245
|
"security",
|
|
237
246
|
"cybersecurity",
|
|
238
247
|
"devsecops",
|
|
@@ -241,6 +250,7 @@
|
|
|
241
250
|
"privacy-first",
|
|
242
251
|
"in-process-scanning",
|
|
243
252
|
"zero-cloud",
|
|
253
|
+
"self-hosted",
|
|
244
254
|
"node",
|
|
245
255
|
"nodejs",
|
|
246
256
|
"typescript",
|
|
@@ -251,7 +261,7 @@
|
|
|
251
261
|
"directories": {
|
|
252
262
|
"example": "examples"
|
|
253
263
|
},
|
|
254
|
-
"author": "",
|
|
264
|
+
"author": "Tommaso Bertocchi",
|
|
255
265
|
"packageManager": "pnpm@9.12.0",
|
|
256
266
|
"resolutions": {
|
|
257
267
|
"process": "0.11.10"
|