noStackInResponse: detect a stack returned from a RESTlet
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- tooling
Research direction
Read src/rules/noStackInResponse.ts and the script type inference helpers in src/lib/script-side.ts, then inspect the rule tests in test/rules.test.ts and test/rules-extra.test.ts. Add coverage for RESTlet entry points returning an object containing .stack, and verify existing response.write and writeLine cases still behave as described. The issue leaves detection reliability and whether to update the opt-in reason open; check scripts/rule-sources.ts and ADR 0005 before deciding whether generated README updates are needed.
Written by the indexing model from the issue text.
Description
Problem
noStackInResponse (src/rules/noStackInResponse.ts) only reports a .stack read inside the arguments of response.write or writeLine. A RESTlet returns its response body from the entry point, so return { error: e.stack } is not detected. The OWASP agent skill warns against returning stack traces in error responses generally.
Idea
For files whose inferred script type is a RESTlet, also report .stack reads inside a return of a RESTlet entry point (get, post, put, delete). Keep the rule opt-in (in no preset) unless the detection can be made reliable.
Where
- Rule:
src/rules/noStackInResponse.ts; helpers insrc/lib/script-side.ts - Tests:
test/rules.test.ts,test/rules-extra.test.ts - Opt-in reason and sources:
scripts/rule-sources.ts(update it if the limitation goes away, then runnpm run buildandnpm run readme) - Why it is opt-in: ADR 0005
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 2h 8m
- Merged PRs (30d)
- 64
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from nemchik/biome-plugin-suitescript
-
ready-for-agent
Difficulty 1/5 1-3 hours Newbie friendliness 72/100
nemchik/biome-plugin-suitescript#137 ·
Maintainers usually reply within 1 day
-
needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
nemchik/biome-plugin-suitescript#87 ·
Maintainers usually reply within 1 day
-
enhancement ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
nemchik/biome-plugin-suitescript#48 ·
Maintainers usually reply within 1 day
-
ready-for-agent
Difficulty 3/5 Half a day Newbie friendliness 45/100
nemchik/biome-plugin-suitescript#138 ·
Maintainers usually reply within 1 day
-
ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 45/100
nemchik/biome-plugin-suitescript#136 ·
Maintainers usually reply within 1 day
All issues in nemchik/biome-plugin-suitescript
Similar issues
-
parse: child keys like `007`, `1e3`, `0x1f`, `-1` make the parent an empty array and hide the valueOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement follow-up
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 62/100
bketelsen/pi-pocket-team#232 ·
Maintainers usually reply within 1 day
-
bug UI
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
wardian-app/Wardian#1746 ·
Maintainers usually reply within 1 day
-
area: interop area: sip-core v3
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
fonoster/routr#705 · 1 comment ·
Maintainers usually reply within 1 day