-
Notifications
You must be signed in to change notification settings - Fork 40
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
Simply datetime values (timestamps) by moving to RFC3339 #469
Comments
Another argument for using RFC3339 is ROLIE, as RFC3339 is the normative reference there. |
I am (for now) not in favor of this proposal. There are no easy choices here as only "different" but not "less severe" problems await. That alone renders the that RFC as normative reference "replacing" ISO-8601 quite useless. I remember we arrived at the "silent no zone means Z decision" within the TC for CVRF v1.2 as many documents in the field had no time zones at all and this only "shifted" (bend) times but did not "invalidate complete documents". |
This is correct (from my reading). But what is the use case for The same with a missing 'Z', if the converter is to assume a local time and does the conversion, it is fine, but I wouldn't leave the ambiguity open in a new standard. It is much better to do this once in the conversion step than to make all reader implementations cope with the extra complexity unnecessarily. |
Did more reading: the JSON schemas already refer to
|
I'm happy to change ISO 8601 to RFC3339 as we implicit state that through I'm not in favor of only allowing UTC. Some programming languages seem to have problems with the |
- resolves oasis-tcs#469 - remove reference to ISO 8601 - add reference to RFC3339
In case we later ask OASIS to submit CSAF v2.0 to ISO it is not convincing for me to remove ISO-8601. The converter arguments seem weak, as we could just use milliseconds since epoch and trust converters to do it right. The usecase of colon free timestamps is always the slugness when using as parts of filenames and URL parts. In summary I think we are too late in the process for v2.0 to preform this change. |
- addresses parts of oasis-tcs#469 - add informative reference to RFC3339
As filename parts a special format maybe preferable, but then ISO 8601 is still having way to many possibilities. |
My position is clear, I think. Time rules humanity not the other way around - for that we are good enough with ISO-8601. We are already very good on the parsing of the temporal data. Any complications that remain are due to the difficulty of a multitude of producers and their preferences and capabilities. Personally, I do not really perceive the simplification promise from that opinionated RFC. Lastly, ROLIE is just one option from many and the JSON schema mostly a shape sketch - I would not use these details as pretext to have the tail wag the dog In a later version - maybe v3.0 we may have more experience with the ecosystem to decide based on evidence what is best to describe our temporal aspects - it should in no case be that some specific implementations rule the standard for easing, as the standard should serve the whole system of participants. |
The CSAF standard is for automation, such as code that can run exact and with a minimum of potential variants. Using only one variant of datetimes with UTC, is adhering to the "minimal principle" of data format design (If you want a longer background read on this principle, here is an article about this I wrote many years ago: https://fsfe.org/freesoftware/standards/minimalisticstandards.en.html )
(Which programming languages did you see with this problem? Is this a reading or a writing problem? Most general purpose language do have an RFC3339 parser in a internal or external library available and writing dates with a format string is also something I see almost eyerywhere.)
Thought about it, this is an argument with weight, because if using a simpler data format here will complicate things elsewhere, it would not be helpful. Using the UTC variant does not seems to create major problems for implementations, though:
From my view the recommendation ist: use the UTC subset of RFC3339, unless the timeshift value is really needed by a compelling use case. |
When the web was young, we all found it refreshingly easy to parse ISO-8601 - the real one, coming along in real data - and not some human only targeting local display of time we encountered before. Automating successfully - in my experience - rarely means we bend reality, but instead find some minimal algorithmic "Bending" to deal with real data. Nice try, but ... Real people, filling in temporal data may do so by hand using a simple text editor and then often prefer local times. Not every software is produced in a UTC culture constantly triggering mental excercises to remove the cognitive dissonance (esp. in regions not as privileged as Europe where it often is just subtraction/addition of 1 or 2 hours depending on the temperature 😉). Converters can always act along the chain when automation is important and the community operates under a transitive trust model (allowing an intermediate node to "refactor" a signed document). To me, the CSAF specification has to offer a good user experience also in producing and consuming - not to maximize use cases in the middle of some possible chain. We already have a two-level compliance framework:
I imagine and hope that many open source CSAF documents will be created by hand and stored as well as downloaded from github, gitlab, sourcehut, and other platforms once to their final destination. No intermediate automation involved. In summary: I see the value of a temporal format spec on our abstraction level in providing support for cooperative exchange to use only the most simple codification. We even offer categorial data fields as free text to maximize use and accessibility. Propose to close with no action. |
(Part of the main action has already been taken if I understand correctly. I've only put forward more arguments between using RFC3339 plain allowing timeshifts or the RFC3339 subset that only allows UTC.) As for cognitive load:
RFC3339 with only UTC allowed
RFC3339 with timezone
I think reading will happen more often than writing, the RFC 3339 with UTC variant is posing least mental work on humans. |
I suggest to clarify what we expect to see in a |
- addresses parts of oasis-tcs#469 - add section on Date and Time to explain the rules
- addresses parts of oasis-tcs#469 - specify . as frac-sec separator - explicitly state no empty timezones - add reference to ABNF of RFC 3339 section 5.6
|
- addresses parts of oasis-tcs#469 - move RFC 3339 and ISO 8601 to normative references
- addresses parts of oasis-tcs#469 - correct format - add filename to etc/bind.txt
- addresses parts of oasis-tcs#469 - link section in conformance targets
- addresses parts of oasis-tcs#469 - add links to standards - add rules regarding separator
- addresses parts of oasis-tcs#469 - add mandatory test to check date-time rules - add invalid example - add valid example
|
- addresses parts of oasis-tcs#469 - exclude schema test failing testfile
- addresses parts of oasis-tcs#469 - add links to standards - add rules regarding separator
- addresses parts of oasis-tcs#469 - add mandatory test to check date-time rules - add invalid example - add valid example
- addresses parts of oasis-tcs#469 - exclude schema test failing testfile
- addresses parts of oasis-tcs#469 - add test into bind.txt
CSAF-2.0 has ISO 8601 as normative reference.
Allowing a subset of this, specially RFC3339 with the further restriction of only using UTC,
makes the standard easier to parse and write.
Because CSAF is an exchange format for automation in the security context,
there does not seem to be a case for timezones or all iso 8601 variants.
https://datatracker.ietf.org/doc/html/rfc3339 says
and
so the ABNF should be used with this line changed to:
The text was updated successfully, but these errors were encountered: