{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D7","name":"Architectural Integrity","shortDescription":{"text":"Architectural Integrity"},"helpUri":"https://codehealth.canine.dev/dimensions/D7"},{"id":"D8","name":"Code Coverage","shortDescription":{"text":"Code Coverage"},"helpUri":"https://codehealth.canine.dev/dimensions/D8"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D12","name":"Dependency Hygiene","shortDescription":{"text":"Dependency Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/D12"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D20","name":"ADR Quality","shortDescription":{"text":"ADR Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D20"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D25","name":"ADR Conformance","shortDescription":{"text":"ADR Conformance"},"helpUri":"https://codehealth.canine.dev/dimensions/D25"},{"id":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"id":"D27","name":"Navigability","shortDescription":{"text":"Navigability"},"helpUri":"https://codehealth.canine.dev/dimensions/D27"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D33","name":"JS/npm Dependency Vulnerabilities","shortDescription":{"text":"JS/npm Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D33","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"},{"id":"D36","name":"Supply-chain Provenance \u0026 Signing","shortDescription":{"text":"Supply-chain Provenance \u0026 Signing"},"helpUri":"https://codehealth.canine.dev/dimensions/D36","relationships":[{"target":{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-494","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1357","CWE-494"]}},{"id":"D38","name":"OSV Dependency Vulnerabilities","shortDescription":{"text":"OSV Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D38","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}}]}},"results":[{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/flow_dot_js_wasm.js: FileTooLong \u2014 564 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/flow_dot_js_wasm.js"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd82f107f3b52f23348b9969971fbb8edf7a96c8f3e09ac5cbfd5073441543c9"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: lib/core.js: FileTooLong \u2014 3427 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"lib/core.js"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f40902da1272fe7548ab57d6ff30cc7cb1fefee6a76db804ff7cb038b9a0de3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: union_intersection/gen_big_disjoint_union.js: FileTooLong \u2014 4003 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/union_intersection/gen_big_disjoint_union.js"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"25525d3c8acff364c18a6c92e1320a1701bb029d9fe44504f86ecd11f5e86a2f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: union/resolve-union-overflow.js: FileTooLong \u2014 4012 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/union/resolve-union-overflow.js"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ca142a07f2605fc92fae5a3e47213f1403379122c50b53effdf4eb5ef06b7ca"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: uninitialized_instance_property/test.js: FileTooLong \u2014 1297 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/uninitialized_instance_property/test.js"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"679f9e939bd25c5b80f76c5681fe24ba8fe006a6588305fd191fb2aba1b8a775"}},{"ruleId":"D8","level":"error","message":{"text":"No automated tests: No automated tests \u2014 the solution has no test code. Untested code is the largest single risk to changing it safely."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3132564c6310e5d01a231f252a02d5d2f5a542c0a8fa29a14c89693f1e3df871"}},{"ruleId":"D9","level":"note","message":{"text":"No tests found: No test projects found in the repository."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c9bf64cbb5a4ae13d6bcd01fa3bc8d2879d860c73bc67f176ee3c2cecb8adce3"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: packages/flow-api-translator/src/flowDefToTSDef.js: packages/flow-api-translator/src/flowDefToTSDef.js changed 1 times in last 90 days, max complexity 237."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/flow-api-translator/src/flowDefToTSDef.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4dad408f17f4ac0277bd578f92c84a729b564e1a0d86098ce18e490585065c95"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: packages/flow-api-translator/src/TSDefToFlowDef.js: packages/flow-api-translator/src/TSDefToFlowDef.js changed 1 times in last 90 days, max complexity 221."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/flow-api-translator/src/TSDefToFlowDef.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e040e595e106d1d44ddbfc8aff174f86e0e54b1b682a0bec55b34871beea1815"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: packages/flow-transform/src/transform/mutations/RemoveNode.js: packages/flow-transform/src/transform/mutations/RemoveNode.js changed 3 times in last 90 days, max complexity 43."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/flow-transform/src/transform/mutations/RemoveNode.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e79aa6d888a70227bd1273baffab5527c6beec8e341b1ff230f9a8e3cd0caf07"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: packages/flow-parser/__test_utils__/parse.js: packages/flow-parser/__test_utils__/parse.js changed 3 times in last 90 days, max complexity 15."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/flow-parser/__test_utils__/parse.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c14fab7db7e5533c54668f5ee49cb0f173f0ae18e9b464b6a541c519d287b90a"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: packages/flow-parser/oxidized-src/estree/StripFlowTypesForBabel.js: packages/flow-parser/oxidized-src/estree/StripFlowTypesForBabel.js changed 2 times in last 90 days, max complexity 22. 1 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/flow-parser/oxidized-src/estree/StripFlowTypesForBabel.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"edf99347a74169537af50b36a847d55ca6995a18b49e5b5d9963287ecb08cfbb"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: packages/flow-parser/oxidized-src/estree/StripFlowTypes.js: packages/flow-parser/oxidized-src/estree/StripFlowTypes.js changed 1 times in last 90 days, max complexity 43."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/flow-parser/oxidized-src/estree/StripFlowTypes.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdbd901cb0517855dfe48144618e85f2685c8e4872dfd4f8d9bfabc635ab8c19"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: packages/flow-estree/src/predicates.js: packages/flow-estree/src/predicates.js changed 1 times in last 90 days, max complexity 34."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/flow-estree/src/predicates.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"49a61bd0b698ad2098931f48b89cc9e6d0ee15ddf2fcda1e37447e89f0101c73"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: packages/flow-transform/src/transform/comments/prettier/main/comments.js: packages/flow-transform/src/transform/comments/prettier/main/comments.js changed 1 times in last 90 days, max complexity 30."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/flow-transform/src/transform/comments/prettier/main/comments.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"84e23120b593bfc16d22b4928eb27f859ee85cc99dcae68187003f6e612c1f25"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: packages/flow-transform/src/transform/comments/prettier/language-js/comments.js: packages/flow-transform/src/transform/comments/prettier/language-js/comments.js changed 1 times in last 90 days, max complexity 21."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/flow-transform/src/transform/comments/prettier/language-js/comments.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2c7a47a7053dd81359e6ca39546a5b21f69f025682183ff111b74641ec9d945"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: packages/flow-transform/src/transform/comments/prettier/common/util.js: packages/flow-transform/src/transform/comments/prettier/common/util.js changed 1 times in last 90 days, max complexity 16."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/flow-transform/src/transform/comments/prettier/common/util.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4db9c7178a47bd12f4bc8dd1c08444fa65fae43f943577ce717e2a25c347fcd"}},{"ruleId":"D20","level":"warning","message":{"text":"No context/problem and no consequences/trade-offs; the body is a boilerplate two-component spec: Add why an inbox matters (e.g. user needs to see all notifications) and the trade-offs of using Relay components vs React hooks for rendering"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evals/evals/03_project_patterns/relay_core/candidate_prompts/01_notification_inbox.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6167015aeb36d9193aae92f5ecc9cc3b521cde1a35e515a00e4d78e9e94e7d1a"}},{"ruleId":"D20","level":"warning","message":{"text":"Announcement-only content: no explicit decision or consequences (e.g. how to handle existing Flow subscribers who still follow GitHub releases): Add a Consequences section noting that this change will cause some users to stop following GitHub for release dates and the migration path for them"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2015-07-29-Version-0.14.0.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cab7e146391849f69ff57661be94a94649cfcf28ec0b0cd23d99e4ebc9a24a6f"}},{"ruleId":"D20","level":"warning","message":{"text":"Only a version announcement and thanks; the ADR is an empty release note with no context/problem and no explicit decision: Replace with a real architecture decision record stating what changed, why it was done, and its consequences"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2015-09-10-Version-0.15.0.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"58a4218ea74e1f411d4e173e6d7c2934550875c9209b3e6c71ca820340a784c2"}},{"ruleId":"D20","level":"warning","message":{"text":"No explicit context/problem and no consequences/trade-offs for the released features (perf improvements/let/const support): Add a one-paragraph problem statement motivating why Flow v0.16.0 was released and its trade-offs"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2015-09-22-Version-0.16.0.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c1f28bbc331584433be8bf1d5750be01ffaa8add1759621ce5300dc8c90f5f0"}},{"ruleId":"D20","level":"warning","message":{"text":"No decision or consequences are present (only an announcement post) and the title is a release metadata label rather than an informative decision: Convert to a real ADR: state the explicit decision (error display format changed to look like this), its rationale, and any consequences/trade-offs"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2015-10-07-Version-0.17.0.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d901a3084454ceffa60e660412ce9f71253e0497930c7ef97326200c2ba70cc"}},{"ruleId":"D20","level":"warning","message":{"text":"Decision and consequences are not present in the visible text (only a rationale is shown): "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2017-07-27-Opaque-Types.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e7d03dfb9803a06ecdbf025072324d9a1c439cc3da6d1f66badf74693fcbcd6"}},{"ruleId":"D20","level":"warning","message":{"text":"No real decision (what lint rules are enabled or what trade-offs exist) is present despite an informative title: Add a Decision section stating the linter\u0027s behavior and any trade-offs such as false positives against existing code"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2017-08-04-Linting-in-Flow.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"056de0cb8c1ed4f6364187fb37543c16c26b45910bc8bd9f6931f6a7318eebe0"}},{"ruleId":"D20","level":"warning","message":{"text":"The body clips mid-sentence (\u0027It is time to rethink...\u0027) before any explicit decision and consequences are visible (e.g. trade-offs of the new model): "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fb3aba5f469e760ad50c67f7ef6e02fd2008a2a217f97ff367895b508cc56c7"}},{"ruleId":"D20","level":"warning","message":{"text":"No Consequences/trade-offs section on opaque types being brittle or harder to refactor: Add a Consequences section noting that opaque type aliases can make interfaces unstable and diffs between versions are harder to track"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2017-08-25-Private-Object-Properties-Using-Flows-Opaque-Type-Aliases.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3c5e5f7ca960b617140c967ccf03d073f52596194b9211e147908499f834498"}},{"ruleId":"D20","level":"warning","message":{"text":"No explicit Decision statement (what Flow support entails for HOCs) and no Consequences/trade-offs section: Add a Decision section describing the Flow type annotations/behavior supported for higher-order components, and a Consequences section noting backward compatibility with existing HOC typings."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2017-09-03-Flow-Support-in-Recompose.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a97c281ac9f801b01fa09a3282095fcbb96a8a2d11767ab32afd1a1869be4d7"}},{"ruleId":"D20","level":"warning","message":{"text":"No explicit decision or consequences section visible before the clip: "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2018-02-20-Better-Flow-Error-Messages-for-the-Javascript-Ecosystem.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a39fc5b87001f62768905e7dcc32f93b2db993961472e158732d35b556c4d989"}},{"ruleId":"D20","level":"warning","message":{"text":"No context/problem and no consequences/trade-offs are stated \u2014 only a decision date and link to Refinements documentation: Add a Context section explaining when unknown property access in conditionals is dangerous (e.g. destructuring inside an if/else guard) and a Consequences section noting how it breaks existing code that relies on runtime behavior"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d101df8dfd1bef4a21d61a703861bb760d3a4bb60ede27d4b4f1eadef5ff8a9f"}},{"ruleId":"D20","level":"warning","message":{"text":"Consequences/trade-offs (upgrade cost/codemod burden) are not visible before the clip: "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2018-10-18-Exact-Objects-By-Default.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6d6b86e1b43cabdda11349ce49b96ea20dcb50b478cc86b677f957e407077a7"}},{"ruleId":"D20","level":"warning","message":{"text":"No context/problem and no explicit decision/consequences are present (only a historical link and the release date): Add a Context section explaining why required annotations were introduced and a Decision/Consequences section describing what will happen to existing code"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2018-10-29-Asking-for-Required-Annotations.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a0f416be16895bf2c21c242712234b760790bd9875e2b21a42c276a6c76554a"}},{"ruleId":"D20","level":"warning","message":{"text":"No consequences/trade-offs in the visible text despite a decision being stated: Add a Consequences section covering trade-offs such as increased boilerplate for forwardRef props and loss of inline styling support"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2018-12-13-React-Abstract-Component.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"49d2e7b5745228bd0234cda4cdfbecb84ec450857e73178dc125922e9fbdf18a"}},{"ruleId":"D20","level":"warning","message":{"text":"No explicit decision and no consequences/trade-offs are stated \u2014 only a banner announcement with a link: State the specific syntax/behavior change (e.g. spread keys vs rest) and its trade-offs in the body"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2019-08-20-Changes-to-Object-Spreads.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cb7ec00aed989b7195245f22331636bd3499beda214cde2dae00fd88ecb3e8e"}},{"ruleId":"D20","level":"warning","message":{"text":"No context/problem or explicit decision is present (only a historical link and a clip marker): Replace with an ADR describing what the Flow team has been working on in recent months: the problem they solved, the decision made, and its consequences."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2019-1-28-What-the-flow-team-has-been-up-to.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9128ad7e5f49d7d8e7fa4d5e541fceda476eaaeebd931582d3b8bc99798abe48"}},{"ruleId":"D20","level":"warning","message":{"text":"No explicit decision (what live error behavior is adopted) and no consequences/trade-offs are stated: Replace the one-line benefit with a concrete decision (e.g. \u0027live Flow errors now show on hover over type-checked expressions\u0027) and document trade-offs such as false positives or performance impact"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2019-10-25-Live-Flow-Errors-in-your-IDE.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"686304cc266f5f04b8f05202994c6a451a42dbfa9420c52124ca5a0f4fd6d81a"}},{"ruleId":"D20","level":"warning","message":{"text":"No concrete context/problem or decision (only a link to an external post) and no consequences/trade-offs: Replace with the actual body: describe one or two real spread errors and their fixes in the context section, then state the explicit decision (e.g. \u0027spread/rest patterns must match shape\u0027) and its consequences"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1916218c7fb7088082906d137260b3cdaf511dbe71e8f55e2ade841f573772e"}},{"ruleId":"D20","level":"warning","message":{"text":"No concrete problem statement and no explicit decision are present before the historical note (the body is a single sentence plus an info marker then clips): Add the context/problem (why responsiveness matters) and the explicit decision (what Flow change was made) so the historical note alone does not obscure them"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2019-2-8-A-More-Responsive-Flow.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f676cf6c64bbe47370bb573000b8340b74bddcc4224d95949c51edf71dfa6f01"}},{"ruleId":"D20","level":"warning","message":{"text":"No context/problem and no explicit decision (only a link to an external upgrade guide) present: Add the concrete problem being solved (e.g. breaking imports/typedefs after Flow version bump) and state what decision is made (e.g. migrate via a migration script or re-export) with its consequences"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2019-4-9-Upgrading-Flow-Codebases.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4363501a8609a8c7618510d963653e704ee2711c687ced1e1044ff8b79f2ba4e"}},{"ruleId":"D20","level":"warning","message":{"text":"No consequences/trade-offs are stated (e.g. loss of implicit optional shape or increased typing friction) before the external link: Add a Consequences section noting trade-offs such as no longer being able to omit optional fields and increased type annotation burden for existing code"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2020-01-29-How-to-Upgrade-to-exact-by-default-object-type-syntax.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcdf46ab451f5c241723bd72cdc569e9d5cbf04aac15adb4ea95457b2fc8c748"}},{"ruleId":"D20","level":"warning","message":{"text":"No decision or consequences are stated (only historical context and a link) before the clip: Add an explicit Decision section describing what changes were made and why, plus Consequences such as trade-offs of the proposed improvements"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2020-02-19-Improvements-to-Flow-in-2019.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"455d93c7e834f202d41e86f2695daf0bf48ad0e33474e11e53041e10ef540ab5"}},{"ruleId":"D20","level":"warning","message":{"text":"The title is a boilerplate placeholder (\u0022What we\u2019re building in 2020\u0022) and the body is a link-only Medium post with no context/problem or explicit decision: Replace the placeholder title with an informative name reflecting the actual content (e.g. \u0022Introducing Flow\u2019s 2020 Type-System Improvements\u0022), and replace the link with the real ADR describing the problem, the concrete decisions made in 2020, and any consequences"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2020-03-09-What-were-building-in-2020.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"370ca31b770c5b3ea83f5c0be8e82a96369fa19b6aa352a8627ff27409459139"}},{"ruleId":"D20","level":"warning","message":{"text":"The body clips mid-sentence (\u0027We\u2019re improving...\u0027) and no explicit Decision or Consequences sections follow: "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d909f9988f0f736833364f74387bea6f4098bfec7b14ba59fba73f4934785df"}},{"ruleId":"D20","level":"warning","message":{"text":"No context/problem (why types-first architecture matters) and no consequences/trade-offs are stated in the visible text: Add a Context section explaining what Types-First addresses (scalable typing, module boundaries, failure mode of untyped code)) and a Consequences section covering trade-offs such as boilerplate or loss of runtime flexibility"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2020-05-18-Types-First-A-Scalable-New-Architecture-for-Flow.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"68853d10bbfee07c01dd1e5f4f1e3e1f3fb69d0e1fcee4b887886253562b38f8"}},{"ruleId":"D20","level":"warning","message":{"text":"Consequences/trade-offs of banning unsafe generic behaviors (e.g. loss of flexibility) are not yet visible before the clip marker: "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2020-11-16-Flows-Improved-Handling-of-Generic-Types.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3924d8519995fedee0a26ff70145a9576601f5d8a506a06041136c72cd206371"}},{"ruleId":"D20","level":"warning","message":{"text":"No explicit decision or consequences section visible before the clip (only historical context and release date are present): "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb884cadca278b1b824d45759142af5e1057775a3bdba0fdc7dcc76f45a0a15d"}},{"ruleId":"D20","level":"warning","message":{"text":"No explicit decision or consequences in the visible text (only context \u002B author link): "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6aee86178d29ed8630d248655742f10a0eaeafe3b1b897ac7d575edbacea5edb"}},{"ruleId":"D20","level":"warning","message":{"text":"Decision is a single sentence restating historical context with no explicit decision or consequences: Add an explicit Decision section stating what sound typing for \u0060this\u0060 entails (e.g. annotating this on functions/methods) and its trade-offs (e.g. false positives under certain syntactic forms)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2021-06-02-Sound-Typing-for-this-in-Flow.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5432fe5f5762ebaa70f50b5b189b61e207547c21136a239df700c2f3bac2d5f"}},{"ruleId":"D20","level":"warning","message":{"text":"Decision/consequences (the indexed-access syntax and its trade-offs) are not yet stated in the visible text; only what it is: State the explicit decision (the annotation shape/behavior) and its consequences/trade-offs (e.g. increased verbosity vs clearer type inference)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f796a1806d369157cb32b09adea0a0f0f4d773965e5a8a74dfb590500ec097c"}},{"ruleId":"D20","level":"warning","message":{"text":"Consequences/trade-offs (e.g. optional opt-in cost, runtime overhead) are not visible due to the clip: "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2021-09-13-Introducing-Flow-Enums.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f29f0de7c9bdf1f91a390d6f7e05180d5d3b5fa972a052615eff185f0e02328"}},{"ruleId":"D20","level":"warning","message":{"text":"No explicit context/problem or consequences section visible before the clip (only a feature-by-feature comparison is present): "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2021-09-13-TypeScript-Enums-vs-Flow-Enums.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"311085c697d6f25ba4882d9d2b8fd0738d4d08ab6348154c8531569a46cccf5a"}},{"ruleId":"D20","level":"warning","message":{"text":"Decision is announced but never stated (which inference engine to use, what type-checking model) and consequences/trade-offs are absent: State the explicit decision: which inference algorithm (eager vs lazy, with fallback) and any trade-offs such as loss of non-obvious type deductions"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e47f38dd07a7b03b3b25030831491346ca1075ff35d877e934d5ddd301d1e212"}},{"ruleId":"D20","level":"warning","message":{"text":"Consequences/trade-offs (what constrained writes mean and their trade-offs) are not visible before the historical note: Add a Consequences section covering what constrained writes enforce, when they apply, and any trade-offs such as annotation friction"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb882cb4b2d62af838c437f3d911357c61ab2f0b30aa06a739e1f257ab268860"}},{"ruleId":"D20","level":"warning","message":{"text":"No problem statement/context and no consequences/trade-offs; only the decision \u0027Flow will now require more annotations\u0027 is stated before any rationale or impact: Add a Context section explaining why annotation requirements are increasing (e.g. better type inference, catching bad signatures) and a Consequences section on trade-offs like false positives and friction for new APIs"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a225b57868cf7c164bda3b085ab7d07f69eda1542088a5c3dd645af114a925e0"}},{"ruleId":"D20","level":"warning","message":{"text":"Decision and consequences/trade-offs are not visible before the clip (the body is cut mid-context): "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2023-01-17-Local-Type-Inference.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"88b5f3b26c74ed9492a539906e019cc0504ad5a3bf7a89b36d5f34aed9cc0435"}},{"ruleId":"D20","level":"warning","message":{"text":"No consequences/trade-offs of making exact object types the default are stated (e.g. loss of implicit type widening): Add a Consequences section noting trade-offs such as increased runtime cost for widening and the loss of implicit type relationships"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2023-02-16-Exact-object-types-by-default-by-default.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"55c04d2609b60b90bf8214c75463818386f1b6fd86369231553cf96cd8ab7d66"}},{"ruleId":"D20","level":"warning","message":{"text":"No context/problem and no consequences/trade-offs for the unused-Promise linter decision are stated in the visible text: Add a Consequences section covering false-positive rates, linting overhead on promises that do execute, and how to override the rule"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2023-04-10-Unused-Promise.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"513f77afe27371ef3be8d5d41b382e860e9b79466dcb7791136acfaaf11300ad"}},{"ruleId":"D20","level":"warning","message":{"text":"No explicit decision or consequences (trade-offs) are stated among the listed features: Add a Decision section describing what each new feature does and a Consequences section noting any trade-offs such as increased verbosity or runtime cost"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e919d0a201b0623d2337f3f5d431f9e6e80de755339791bf6d0cb8ed1f8aa217"}},{"ruleId":"D20","level":"warning","message":{"text":"Only a title and authors; no context/problem and no consequences/trade-offs: Add what flow docs and try-flow configuration are currently lacking (e.g. unclear lint defaults) and the trade-offs of adding new options"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2023-09-19-Improved-Flow-Docs-and-Try-Flow.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f2b87ee3981e463c9f6bf88042cf3f669f19df7640eab8cdf5b2f0dc4cf2abc"}},{"ruleId":"D20","level":"warning","message":{"text":"No explicit decision or consequences (trade-offs) are stated in the visible portion: Add a Decision section describing what the new as syntax does and where it replaces existing casts, plus a Consequences section covering learning curve for newcomers vs. backwards compatibility with prior Flow types"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2024-02-06-New-type-casting-syntax-for-Flow-as.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"01869481269e1a7f6a76cbf07dc27e6bcf6696b33eabc557b6880909d0873e07"}},{"ruleId":"D20","level":"warning","message":{"text":"No context/problem and no explicit decision (the announced feature) are stated: State what problem conditional types solve and document the concrete decision (e.g. how to write a type that returns one of two output types based on input inspection) along with its consequences"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2024-03-05-Announcing-Conditional-Types.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9d594e6d7ab69c3fcc9d78cceeb9b29f8ee2bff1c3ff2e8c565f3e50da37955"}},{"ruleId":"D20","level":"warning","message":{"text":"No context/problem (why Component Syntax matters) or consequences/trade-offs are stated in the visible text: Add a Context section explaining which React idioms were previously unmanageable and why static Flow is needed, plus a Consequences section covering trade-offs such as increased boilerplate for primitives"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2024-04-03-New-Flow-Language-Features-for-React.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"69982ad6aa864e5838af5d23ad7eee1c46d4e0cf12e6b4482eb32ab5baef86e7"}},{"ruleId":"D20","level":"warning","message":{"text":"Consequences/trade-offs (e.g. runtime cost or breaking changes) are not visible before the clip: "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2024-08-06-Announcing-Mapped-Types-Pick-Omit-and-Record.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"47084590f666d2fe4f703461f333e93728ea5540f12911fc9201e99b735bc9a6"}},{"ruleId":"D20","level":"warning","message":{"text":"Consequences/trade-offs of the new literal-type decision (e.g. loss of inference over re-assignable variables) are not stated in the visible portion: "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/blog/2025-05-29-Natural-Inference-for-Primitives-in-Flow.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"37d8d7796e80567181594618eccbb66b27e9ad5130e8881bd840192a4916ae55"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"77c99ed631d4d2ff7762457a6f99465e3fe272b55c3d95bd831b9f453ad3a4ea"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"92b45f0daa9b7976da7dc09eaec92224ce9d00077cfd37ccb914adb1313fb834"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"92b45f0daa9b7976da7dc09eaec92224ce9d00077cfd37ccb914adb1313fb834"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"92b45f0daa9b7976da7dc09eaec92224ce9d00077cfd37ccb914adb1313fb834"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"92b45f0daa9b7976da7dc09eaec92224ce9d00077cfd37ccb914adb1313fb834"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"92b45f0daa9b7976da7dc09eaec92224ce9d00077cfd37ccb914adb1313fb834"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"92b45f0daa9b7976da7dc09eaec92224ce9d00077cfd37ccb914adb1313fb834"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"92b45f0daa9b7976da7dc09eaec92224ce9d00077cfd37ccb914adb1313fb834"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"92b45f0daa9b7976da7dc09eaec92224ce9d00077cfd37ccb914adb1313fb834"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"92b45f0daa9b7976da7dc09eaec92224ce9d00077cfd37ccb914adb1313fb834"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"92b45f0daa9b7976da7dc09eaec92224ce9d00077cfd37ccb914adb1313fb834"}},{"ruleId":"D28","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3cdfd7beb31b791ae18dcb425e21eb157c842e7bbcd522cc330573c1a6538db1"}},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"495e658d0401a82bf066a326937e0a6c7f1b55e6fef8f38b8fe670a625ba3f1e"},"taxa":[{"id":"CWE-732","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"495e658d0401a82bf066a326937e0a6c7f1b55e6fef8f38b8fe670a625ba3f1e"},"taxa":[{"id":"CWE-732","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"495e658d0401a82bf066a326937e0a6c7f1b55e6fef8f38b8fe670a625ba3f1e"},"taxa":[{"id":"CWE-732","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"495e658d0401a82bf066a326937e0a6c7f1b55e6fef8f38b8fe670a625ba3f1e"},"taxa":[{"id":"CWE-732","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9977e8a15f2e9dd042d8e7fefb7c9aa2dc7f44553763fa0da05f6a9b8610390"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: TryFlow.js \u2194 TryFlowResults.js: \u0060website/src/try-flow/TryFlow.js\u0060 and \u0060website/src/try-flow/TryFlowResults.js\u0060 change together 68% of the time (13 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/src/try-flow/TryFlow.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"38878c22d20d0e20a53d2c7a4eed75eb4197c9b14940409e8fec021846397c01"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: flow_js.js \u2194 flow-services.js: \u0060website/libs/flow_js.js\u0060 and \u0060website/src/try-flow/flow-services.js\u0060 change together 62% of the time (8 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/libs/flow_js.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3fe32e28fcd9fe6b3ae22ad4bf1cd92153a02366a8f770d42d14299a38877bf"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: flow_js.js \u2194 TryFlow.js: \u0060website/libs/flow_js.js\u0060 and \u0060website/src/try-flow/TryFlow.js\u0060 change together 57% of the time (8 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/libs/flow_js.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"af91d8ed9eee6c1cc6e730f79de7e52496b5f0bde157238917e98210518a0d28"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: TryFlow.js \u2194 flow-loader.js: \u0060website/src/try-flow/TryFlow.js\u0060 and \u0060website/src/try-flow/flow-loader.js\u0060 change together 53% of the time (8 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"website/src/try-flow/TryFlow.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a6b6953d3b02ee8a25ba58bf43694a45974143a379c15a0cf40373606df4925"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: core.js \u2194 prelude.js: \u0060lib/core.js\u0060 and \u0060prelude/prelude.js\u0060 change together 53% of the time (10 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"lib/core.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"597757824af2871fc5529742f4c0ecec43633b031b97c1e5af94494b6ae17f29"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1b213f6eedd4b140d0bc37bdf1496f72811a643f34064f12518b32e9e83bcfc7"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0e17f71490e4d120a48b2b2881ab866c93b272bef2febb673a3e8e42b2c288ab"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"eb00976a698a5d68999b7ee6d27206fd374e916853e7ff1ead5eed42386f043f"}},{"ruleId":"D36","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"90f83b4fa27db32740afe9540c905f3c0499caed87f61049a8a903ecc95b41c3"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e2998851d6e48d1bea92abe5cb54d4167617669dd0e0541a36158c27f199697a"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d5e0cacbf2c6ea38a59a93baf7438e21d6d2b46ae9f9c05ac2ba373edaa2707d"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3aeb35ef26f563c4b71797a1846162e99e8f3dde9ed8cca7e6c0676ef6e434a3"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3d17063b4d773ced3e8e0469c8c1032fff3eec216d4000c996f94bc4ef04ad4c"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"cb505e621907bf01e2b084d00406742105604285151e30823f1a34e43166cf56"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"33a5334bc6832d35ff4a6d5b1c5d90ce77c5e3f7890f7454f1ffe198de6ff896"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"2a8f98dfcbc3bf3661e23e3c85ca2b62807d6c67fb4e33803fff12b5f4a9e35f"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"94fa393dbde8db4f6f90264d4ffc7a53017f2b22e23170860db31797c320a61c"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"2a90c011ecf665cbdaecb437e8f461392664776aebba425e1f8a929b81403ae2"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"226c95aeaaf774d09bed818637ba62aeab9d804178914a6756b5be9bc731a87e"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"aa2e2189197e63439bb25329795ea1aa4838534868bfeed6d6ec1de03b74e3f3"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"fe7be1da4522fdb7c670bcb43cd256201309ee280a3a5a1f44c21eafde9810b4"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7848c9079737db917157a7a3bbbec681f56aa9629d5f2e8081bf7f252e6b21c0"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"917f0c40a61a35150ae83b5f36265555e097d7cfc667f58bcc3d82acb93155be"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"20ce73b778c53be16f253b2df916e220f5e3344ee1b8e5794d79f49042e4ffc8"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"042244e6903dddb892fc47a0addd955c431ad5969d2090f2a20105a82310c62d"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d95ea5e08abda4b21a19b602441f68cb7636b5cfd3066e7ced026f5837a163cf"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5d540fded3f6394b9ea95361a5123de6c3f12508e6bf8b1648424c87f387cd0b"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0e2b1f18007913bb4120da11fd9351f5e3f36c9d5d35be85a0fa984f08c0ddfe"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1ceec55ab6198ee7347f3dd6e62a16d724d70866580b8c86a47733d00d0f99b1"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"236fc5a7509ce82cf66610beb25327a7aab66efbbcbc9b3194081ab9f1c7eea7"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c554c720726f2a562b62730104a1340c1992929133e33221bbf03596848e13bd"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c4fbcadd8f352a05a51ca4ebcfaf96b6cbbf29d5888b3ae9b08f596d569803c5"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ba7a0545783546c196066bcf8dd0d785ce09b9bdda6a99f8503878081614ddc1"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8544245125f43f92fdc4eb282b0e54dc291ec9edeb812f884ab1626f64192743"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4c58e6a7a4bbead3b24594153dbc893e612709042ba5d99de2703a5916b9b923"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"103c32f130b83e735239ce4685d2232f81a98d043cc2ad91876387bcf80a2cbe"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"856b210d016a586704ebf0618fd41f61c72e407b56502f3687cdc80a23f2ec35"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0ad4057be42ddb16699510db4068a5ffaf99866cec79a47500b80c02152d0df7"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"00068c0306e6314ef34962bcf58d844f14e5046f64c2a3199cbc9e7f19cc9db3"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0143691c3e2d2914d73375c6cc4aeb49aed2921d24902ed8f9455e53903403bf"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"357092fc8f6036398d138b3ad9664f7113145385849b00ce4953df578776a0f3"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c91acf345ad5be26aa25264c120dd1f4377b154298cec9bc113d83fef72fb391"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b5de2d538ecb740abc4daa65b500e2f4980a7c49cb7ea13f6dfa19ee526f863a"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d3279fa87a522215e358bf6d4caf0b3dcd9a8a57110a5b7f25e34e3b4b1c1589"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"dd83d56274f285e114a72c4deb2ad8c969225589d887f3ebe29f6960e4407301"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"6a5e1124fa8bf7e5a5b0618dfa806c6390463a69f657d7ca693968fb45c7ffe4"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a36fea9b37a6268006ebd30d02dfdf029084f18b31b6f4a4a60f7f8199ada45a"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"803cedd9bab3c55ab733855b216fd81a487d52a8699d16f300aaa75374276a66"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a9d73e4f50c16ff1320775ede770580449b469ca5a658da0f3110f2924291c73"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f55083b87ebc3f31f1afa85f5b9804ea38e292a26f17ce2ee59e7d1992f692da"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d7f92a43a7bf7ad787a57e63d7eed5db91e1c31631a87e431eb80b1dd64cd2bd"}},{"ruleId":"D38","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ff762248bc0b3bba316336491e2ac56c41d2eaa1713f70b19687320e0efd1deb"}},{"ruleId":"D38","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f4dc281f8e12a95332dafa6cef541e4d68373f1ff45449e6dab5142c67cc7a33"}},{"ruleId":"D38","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ef661654ff676038991702a69b510108286713e34e5eedf04f8b9a443b0e3a61"}},{"ruleId":"D38","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"44e29f1a6b95dc145eaf687d0b6f3c7cd4d91e8be7132f11c1797c040ab0e9dc"}},{"ruleId":"D38","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8837115624e34b6473d817e06f955a217aadac64af134955b2f64cb973270c50"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","informationUri":"https://cwe.mitre.org/","isComprehensive":false,"shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-1357","guid":"e4d2e772-757e-0a5c-bd7d-77052949d866","name":"Reliance on Insufficiently Trustworthy Component","shortDescription":{"text":"Reliance on Insufficiently Trustworthy Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1357.html"},{"id":"CWE-1395","guid":"800e09e7-c11a-8654-9fa6-86f398995fed","name":"Dependency on Vulnerable Third-Party Component","shortDescription":{"text":"Dependency on Vulnerable Third-Party Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1395.html"},{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-353","guid":"09d7e902-d4ee-f05d-ae6c-0a1554d0c18f","name":"CWE-353","shortDescription":{"text":"CWE-353"},"helpUri":"https://cwe.mitre.org/data/definitions/353.html"},{"id":"CWE-494","guid":"b8a65e0d-e459-4a55-a931-fc1136482375","name":"Download of Code Without Integrity Check","shortDescription":{"text":"Download of Code Without Integrity Check"},"helpUri":"https://cwe.mitre.org/data/definitions/494.html"},{"id":"CWE-732","guid":"1da27e8f-b330-7650-ab63-bd61953eae5d","name":"Incorrect Permission Assignment for Critical Resource","shortDescription":{"text":"Incorrect Permission Assignment for Critical Resource"},"helpUri":"https://cwe.mitre.org/data/definitions/732.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-937","guid":"16f316ae-415c-b354-a59b-1f7905f756e9","name":"Using Components with Known Vulnerabilities","shortDescription":{"text":"Using Components with Known Vulnerabilities"},"helpUri":"https://cwe.mitre.org/data/definitions/937.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":113,"secretScannerRunsExcluded":0}},"redactionTokens":["A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."]}]}