Skip to content

Feature/report identity exposure listing - #1

Open
Sepand96 wants to merge 4 commits into
v-7.260423.0-rtlfrom
feature/report-identity-exposure-listing
Open

Feature/report identity exposure listing#1
Sepand96 wants to merge 4 commits into
v-7.260423.0-rtlfrom
feature/report-identity-exposure-listing

Conversation

@Sepand96

Copy link
Copy Markdown

Proposed changes

Related issues

Checklist

  • I consider the submitted work as finished
  • I tested the code for its functionality
  • I wrote test cases for the relevant uses case (coverage and e2e)
  • I added/update the relevant documentation (either on github or on notion)
  • Where necessary I refactored code to improve the overall quality

Further comments

Sepand96 and others added 4 commits August 21, 2026 11:17
The exposure fact "listing L exposes class C for domain D" is ternary, so it
belongs on an edge, not in a node attribute. The previous exposure_pairs array
made it invisible to the graph: investigations traverse relationships, and the
dashboard widgets aggregate on relationship_type, so neither could answer
"how many domains have password leaks".

Replace exposure_pairs with three core relationship types from Report to
Domain-Name: exposes-login, exposes-password, exposes-session-cookie. The class
rides in relationship_type, which is one of the eight fields the relationships
widget can already aggregate on, so the analytic queries need no custom
front-end code. Domain-Name nodes deduplicate across listings by design - that
shared node is what makes the counts meaningful.

The STIX property-extension survives as the ingest shorthand: exposure_records
is still accepted on import and expanded into observables plus relationships,
while export carries only the listing price and lets the facts leave as native
STIX relationship objects. Re-importing an exported bundle is idempotent.

Also add relationship_exposes-* i18n keys across all ten language files; without
them the UI fell back to rendering the raw "relationship_exposes-password" key.

Report.exposure_records is now a resolved read model over the relationships,
so the graph stays the single source of truth. Exposures are no longer editable
from the edition form, since relationships cannot be fieldPatch'ed - they are
managed from the Knowledge tab like any other relationship.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Three overlapping listings sharing bki.ir across two markets, so the suite
exercises the property the redesign exists for: one deduplicated Domain-Name
node that every listing points at, making the class distribution and the
per-domain rankings meaningful.

Covers import expansion of the exposure_records shorthand, domain-node sharing,
the stock aggregations behind the dashboard queries, price-only export with the
facts leaving as STIX SROs, the untagged-report write gate, and idempotent
re-import.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Thank you for your contribution, but we need you to sign your commits. Please see https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant