sdk icon indicating copy to clipboard operation
sdk copied to clipboard

Entities and relationships should have consumable information about the properties on them

Open zemberdotnet opened this issue 3 years ago • 0 comments

Description

A common problem when working with the entities and relationships across our many integrations is knowing what properties can be expected. This issue is an extension of #672. The problem with convertProperties is that it hides information from those working on the project.

At the moment, the converters present in our many graph-* projects are better than convertProperties because there is some record of what may appear, but the information is not consumable.

A few ideas about ways we could increase entity and relationship visibility and consumability:

  • converters could be promoted to a first-class concept in the sdk. Almost every, if not all, graph-* projects use converters to transform the data received from the APIs into an Entity or Relationship, but the SDK itself has no concept of a converter.
    • Information from the converter could be exported from the project.
  • The schema object on the StepEntityMetadata type currently exists to make it easier to test that an entity matches a certain schema. However, we could use the information in the schema in the opposite direction as well. If we could generate converters from schemas, I think that would put us one step closer to making integrations easier for anyone to develop.
  • There should be a generated file in each project that exports information about the Entities/Relationships in them and their properties.

Related Issues: https://github.com/JupiterOne/sdk/issues/487, https://github.com/JupiterOne/sdk/issues/612

zemberdotnet avatar Apr 25 '22 19:04 zemberdotnet