Skip to content
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

Products not listed as required #19

Open
tschmidtb51 opened this issue Feb 9, 2023 · 4 comments
Open

Products not listed as required #19

tschmidtb51 opened this issue Feb 9, 2023 · 4 comments
Labels
area/product Issues and PRs related to the product field

Comments

@tschmidtb51
Copy link

Currently, the table Statement fields lists productsas not required. However, they should be according to the introduction.

@luhring
Copy link
Contributor

luhring commented Feb 10, 2023

I believe this is addressed by this part of the field's description:

this field is optional as it can cascade down from the encapsulating document, see Inheritance.

The idea is that if there's already a higher-ranking specification of the product(s), it's not necessary to redefine the product(s) for every statement in the document.

So while it's mandatory that the statement is associated with a specific set of products, it's not mandatory that the association be achieved via the statement's products field.

cc: @puerco

@mjnagel
Copy link
Contributor

mjnagel commented Feb 16, 2023

This was confusing to me as well, maybe partially due to a mix of possible inheritance scenarios?

It seems like there's two types of inheritance:

  • Timestamp inheritance from the VEX document struct
  • Timestamp or product id inheritance from the encapsulating document (in-toto, CSAF, etc)

Am I tracking this correctly? Maybe some clarification around this in the spec would be beneficial, I initially was thinking you could throw a products section into the document struct since the only inheritance examples are "pure VEX" (no encapsulation).

@puerco
Copy link
Member

puerco commented Jun 14, 2023

As Dan mentioned, the reason why products is technically optional is because the field can be inherited. Specifically, this is meant to inherit an attestations's subject. This is further explained in the attesting documentation. Perhaps the spec should explicitly mention this, I'll try to add some language to that effect in the next minor revision.

@puerco
Copy link
Member

puerco commented Jun 14, 2023

This, of course does, not imply that the VEX statement can be completed without products, it just means that the JSON struct can be considered valid by a simple validator if it does not have the products field.

@puerco puerco added the area/product Issues and PRs related to the product field label Jun 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/product Issues and PRs related to the product field
Projects
None yet
Development

No branches or pull requests

4 participants