OWASP / OWASP/OpenCRE

Deferred from #586: graph-link pruning + ga_standards filtering for per-user resource selection

Open
#1,043 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

not ready for development untriaged
Dominant language
Python
Stars
180
Forks
137
Avg merge
3d 23h
Merged PRs (30d)
21

Description

Follow-up to #586 (per-user resource selection), tracking the two pieces deliberately
deferred from that work so the core loop could land first. Confirmed with @northdpole as
out of scope for #586 and appropriate as a separate follow-up.

1. Graph-link pruning on CRE pages

Server-side filtering currently applies to the standards list (/rest/v1/standards).
It does NOT prune non-selected standards from the links shown on an individual CRE page —
so a user who filters out (say) SAMM still sees SAMM links when they open a CRE. Decide and
implement whether a user's selection should also prune standard-links off CRE nodes in the
graph views (root_cres / text_search / find_cre), and how (hide the link vs. hide the
node). Flagged as a UX-sensitive call — easy to surprise people on a CRE page.

2. ga_standards filtering + paired frontend bypass

/rest/v1/ga_standards feeds the gap-analysis dropdowns. Filtering it by a user's saved
selection would narrow the GA inputs, so it was left out of the server-side filter PR to
avoid silently shrinking the dropdowns. Completing it needs the server-side filter plus
the paired frontend change to pass ?all=true where GA should span all eligible standards.

Context

Core #586 loop is complete and merged: user + selection persistence, GET/PUT
/rest/v1/user/resources, /rest/v1/standards server-side filter (?all=true bypass), the
MyOpenCRE selection UI, and the concurrency-safe write with the OpenCRE-always-included
invariant. This issue tracks only the two deferred extensions above.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the /rest/v1/standards and /rest/v1/ga_standards entry points, then trace filtering in the root_cres, text_search, and find_cre graph views and the paired frontend calls. Review the existing ?all=true bypass and decide whether filtered standards hide links or nodes. Done means graph-link behavior is implemented and GA requests pass ?all=true where they must span all eligible standards.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend-api-design, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.