parlel/inspector2

A zero-dependency, in-process fake of AWS Inspector2. Speaks the REST/JSON wire protocol used by @aws-sdk/client-inspector2.

PropertyValue
Service nameinspector2
Port4735
ProtocolREST/JSON (POST to op paths)
HealthcheckGET /_parlel/health
Account ID000000000000

Default connection

AWS_ENDPOINT_URL=http://127.0.0.1:4735
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=parlel
AWS_SECRET_ACCESS_KEY=parlel

Supported operations

OperationPath
ListFindingsPOST /findings/list
ListCoveragePOST /coverage/list
CreateFilterPOST /filters/create
ListFiltersPOST /filters/list
DeleteFilterPOST /filters/delete
EnablePOST /enable
DisablePOST /disable
BatchGetAccountStatusPOST /status/batch/get

ListFindings returns seeded findings (a package vulnerability and a network reachability finding) and supports filterCriteria for severity and findingType. ListCoverage returns seeded covered resources.

SDK example

import { Inspector2Client, ListFindingsCommand, EnableCommand } from "@aws-sdk/client-inspector2";

const ins = new Inspector2Client({
  region: "us-east-1",
  endpoint: "http://127.0.0.1:4735",
  credentials: { accessKeyId: "parlel", secretAccessKey: "parlel" },
});

await ins.send(new EnableCommand({ resourceTypes: ["EC2", "ECR"] }));
const { findings } = await ins.send(new ListFindingsCommand({}));
console.log(findings[0].severity);

Access via MCP / preview URL

When run inside parlel, Inspector2 is reachable through the pool's MCP bridge and any assigned preview URL. Point AWS_ENDPOINT_URL at the preview URL.

Surface coverage

This emulator faithfully replicates the API surface most application code and agents exercise. Anything below the supported lines is either an intentional design choice for a fast, zero-cost local emulator (✓ By design) or a candidate for a future release (⟳ Roadmap) — never a silent inaccuracy.

Legend: ✅ fully supported · ◐ accepted (stored, not strictly enforced) · ✓ by design · ⟳ on the roadmap.

AreaLimitation
FindingsFindings are seeded fixtures, not produced by real scanning.
FiltersFilters are stored but never applied to suppress findings.
PaginationSingle-page responses; nextToken is not implemented.
StateIn memory, cleared on reset (findings/coverage re-seeded).
<!-- parlel:testenv:start -->

Configuration — test.env

Copy these into your test.env (used by the bridge sidecar flow). Tokens are Parlel's seeded test credentials — any non-empty value is accepted by the emulator, so you rarely need to change them. Swap in real credentials only when pointing at the live service in prod.env.

AWS_ACCESS_KEY_ID=parlel
AWS_SECRET_ACCESS_KEY=parlel
AWS_REGION=us-east-1
AWS_ENDPOINT_URL=http://parlel-bridge:4735
<!-- parlel:testenv:end -->