brooooooklyn/script-jail
Backend-isolated audit of package-manager lifecycle scripts. Runs on lockfile changes; emits a human-readable .script-jail.lock.yml; fails the PR if the audit diverges from the committed lockfile.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| config | Path to the script-jail config file. | no | .script-jail.yml |
| lock | Path to the install-lock file to compare/regenerate. | no | .script-jail.lock.yml |
| mode | `check` (default) fails on diff; `update` regenerates the lockfile in place. | no | check |
| spoof-platform | Spoofed value for process.platform inside the VM. One of: linux | darwin | win32. | no | linux |
| spoof-arch | Spoofed value for process.arch inside the VM. One of: x64 | arm64. Defaults to the runner CPU architecture. | no | — |
| backend | Audit executor backend. One of: auto | firecracker | docker | bare. auto tries Firecracker, then Docker, then bare. | no | auto |
| cache-firecracker | Cache the Firecracker binary + kernel across runs when backend includes Firecracker. | no | true |
| args | Extra install args, applied identically to the sandbox audit and the host install. Quote-grouped; never run through a shell. Pass args VALID FOR YOUR PACKAGE MANAGER (npm: `--omit=dev`; pnpm: `--prod`; yarn-berry install takes none) — a flag your manager rejects fails the audit. Only a fail-closed allowlist of dependency-selection flags (omit/include/prod/dev/optional/-P/-D) plus a credential-free `--registry` is forwarded; anything that could steer the install (lockfile/dir/output/scripts/global/workspace) is dropped with a warning. Registry AUTH goes in `.npmrc`/env, not here — a `--registry` URL with inline `user:pass@` credentials is dropped (the secret would otherwise be staged where the audited package can read it). | no | "" |
| install | Drop-in install: `true` ALSO installs deps on the runner (package-manager install with lifecycle scripts disabled, then runs lifecycle scripts on the host ONLY if the sandbox audit matches the committed lock). Requires `mode: check` and a committed lock. Default `false` (audit only). | no | false |
Outputs
| name | description |
|---|---|
| lockfile | Absolute path to the generated install lockfile. |
| diff | Unified diff between the generated and committed lockfile; empty on match. |