-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix parent_process
recursion and add grandparent_process
#1158
Fix parent_process
recursion and add grandparent_process
#1158
Conversation
After reading the issue and this pull request, I don't understand why this is something that needs fixing. The recursive structure of the process object feels natural to me. Digging into your example from the issue on representing a grandparent inside of evidences from the linked issue: Furthermore, adding these objects and fields creates more ways to express process genealogy, which will reduce clarity in how to express this concept in OCSF. |
I don't really understand what real problem this PR is seeking to address. An OCSF implementation which features "potentially limitless recursion" when walking up the process hierarchy is to my mind a defective OCSF implementation. The documentation for the And even though this PR wouldn't solve any real problem, it would introduce (at least) three problems:
|
@jonrau-at-queryai I agree with the general sentiments laid out above. These were pretty much the reasons we opted for a recursive definition of the parent_process object. But I am sure, all of us here would be happy to chat about it on the Tuesday call if you would like to. |
Thanks for the feedback gents! This is exactly what I was looking for, the recursion is (self-inflicted) issue of sorts at Query for auto-generating schema for our mapping and nested search engines, where we have to set upper limits on depth. Wasn't sure if it annoyed other folks beyond that "us" problem. I'll go ahead and close this up, since it's ultimately a waste of time. |
Thanks, Jonathan. FWIW, unless something is a simple "non-structural" change that's unlikely to be controversial, I tend to float any proposals in the schema channel on Slack before doing any work. Feedback comes relatively quickly there, and this can avoid the hassle of issue+PR if the community takes a different view. To be clear, it's not necessary to take this step but I like getting the provisional thumbs-up there before proceeding with the more formal submission. |
Agreed. Perhaps a topic of discussion in the upcoming Tuesday meeting or one of our workstream meetings. |
Related Issue
#1108
Description of changes:
In an effort to limit the potentially limitless recursion within
parent_process
being typed as aprocess
and to get a more straightforward approach to modeling both it and grandparent process I made the following changes.parent_process
is now its own distinct Object, changes are mostly flavor but most notably it is no longer self-referential due to the current version being typed as aprocess
object.grandparent_process
but instead of starting it fromparent_process
, it also lives within theprocess
object, this prevents an unnecessary (IMHO) extra layer of depth in the schema, which is already very deep depending if process is referred to fromactor
orevidences
.These changes do not break the current Observable for
process
nor does it break theProcess Name
orProcess ID
observables.However, these can negatively impact mappers who are using the extra layer of depth to model grandparent processes under the current mechanism of
process.parent_process.parent_process
. This data is available from several EDR and APM tools.