Fix audit findings: crash, broken gRPC/scripting/auth, security and robustness hardening - #7
Merged
Merged
Conversation
…obustness hardening - Guard OpenAPI schema sampling against recursive references (process abort) - Make script engine functional: console.* capture and test() assertions - Report honest gRPC statuses, add timeouts and 50 MB response caps - Surface auth errors instead of sending unsigned requests; fix OAuth1 (HMAC-SHA1, query params, ordering) and SigV4 canonicalization with golden-value tests - Add WS/SSE connect timeouts, fix connection races, bounded WS outbound buffer, SSE 1 MB line-break cap, WS close-frame notification - Move blocking export/import/git commands off the main thread; atomic Postman/OpenAPI imports; shared path validation for export/import - Restrict Git sync staging to exported *.json files - Fix MockServer polling leak and stale state, unhandled promise rejections, strict tsconfig for vite config - Remove script-src 'unsafe-inline' from CSP; least-privilege workflow permissions; SHA-pin all GitHub Actions; concurrency and timeouts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Full-repo audit follow-up (security, correctness, robustness, CI). 29 files, +1443/−386. All gates green:
cargo fmt,clippy -D warnings, 143 workspace tests, svelte-check, 28 vitest tests, production build, docs links.Critical fixes
Node.children → Node) caused a stack-overflow process abort; schema sampling now has a depth limit + cycle handling (regression test included).grpc_status: 0— they now surfaceUNKNOWNor an HTTP-derived status, with 30 s timeouts and 50 MB response caps. (Note: full trailer support requires a hyper/tonic client — reqwest 0.12 does not expose trailers; follow-up.)console.log/info/warn/errorandtest(name, condition|fn)are now captured and reported (with volume caps); failing/throwing assertions record as failures instead of vanishing.Security
'unsafe-inline'from CSPscript-src.write_text_file(absolute, under$HOME, no traversal, no symlinks) — closes the arbitrary file write/read gap.ci.ymlread-only, release write scoped to publishing jobs, all actions SHA-pinned, concurrency groups + timeouts.*.jsonfiles (no moregit add -A).Robustness
spawn_blocking(no more UI freezes); Postman/OpenAPI imports are transactional (no partial state).DbError::Io/Serializationvariants replaceNotFound-as-garbage.0.unhandledrejectionreporter.Deliberately deferred (needs follow-up)