Broken Down Endpoint Design for Record Submission #510
Replies: 6 comments 9 replies
-
@chandanbn @mprpic @david-waltermire-nist @kernelsmith @rbrittonMitre |
Beta Was this translation helpful? Give feedback.
-
Rejected requires descriptions, but replacedBy is optional. The endpoint description given may imply both are required. |
Beta Was this translation helpful? Give feedback.
-
I just posted an updated open API and an integration schema in #511 for discussion here. Figured something concrete would be useful. |
Beta Was this translation helpful? Give feedback.
-
Possibly already discussed, but referencing the question response above there is an additional validation case that should be considered.
|
Beta Was this translation helpful? Give feedback.
-
This would be a bug if it does not throw an error. |
Beta Was this translation helpful? Give feedback.
-
Here are the state transitions we talked about today. I think these cover how the specific IDR and RSUS endpoints interact. Please let me know if I have anything wrong. |
Beta Was this translation helpful? Give feedback.
-
Problem statement
A CNA is only responsible for data in the
cna
container of a CVE Record. The community wishes to reduce what is sent to the API for publishing and updating a record to only this object in order to avoid any problems trying to send a fully valid CVE Record to the API.A literal resource oriented approach
Instead of making requests to the
/cve/:id
endpoint, the community would interact with sub-resource endpoints focused on thecna
andadp
container objects along with a rejected record:POST /cve/:id/cna
-> Publish the record, expecting acna
container in the JSON body.PUT /cve/:id/cna
-> Update thecna
container for the record.POST /cve/:id/reject
-> Reject the CVE. Expects adescriptions
array with at least one english description and an optionalreplacedBy
array to build the new rejected CVE record.When ADPs are added to the system post 2.1:
POST /cve/:id/adp
-> Create a new adp container in a published record for the ADP. Must not already have an adp container for this organizaiton. If submitter is the CNA of the record they should not be able to make an ADP submission.PUT /cve/:id/adp
-> Update an existing adp container in a published record for the ADP. If submitter is the CNA of the record they should not be able to make an ADP submission.This would require the QWG to provide an approved subset of the CVE Schema for the AWG to use to validate
cna
andadp
container objects as well as a subset schema that validates thedescriptions
andreplacedBy
arrays submitted to the proposed rejected endpoint.Questions
The cna and adp containers are very similar, why not combine them into one endpoint?
While the containers are similar, there are different requirements for either to be valid. A
cna
container has more required fields. Also, the action being done is different. When submitting anadp
container, an organization is contributing data to a record that is not theirs. When submitting acna
container, an organization is publishing or updating their own record. By separating the two, not only can it be simpler to validate, but we allow clients to be clear in their intent.Beta Was this translation helpful? Give feedback.
All reactions