Markdown Version | Transcript | Session Recording
CBOR
Summary
The CBOR Working Group held an interim meeting to discuss proposed changes to the Concise Diagnostic Notation (CDN) specification, specifically focusing on draft-ietf-cbor-edn-literals. The group reviewed ten proposed simplifications and removals aimed at achieving broader consensus. The session also touched on preparations for the upcoming Working Group Last Call (WGLC) on draft-ietf-cbor-serialization.
Key Discussion Points
The discussion centered on the list of proposals compiled in edn-literals-issues/proposals.md.
1. Removing Encoding Indicator IANA Extensibility (Proposal 1)
- Discussion: Rohan Mahy proposed removing the IANA extensibility registry for encoding indicators. Вадим Гончаров noted that while removing the IANA registry itself is acceptable, he opposes removing extensibility in a broader sense.
2. Ellipsis Handling (Proposals 2, 3, 4, and 9)
- Proposal 2 (Limit ellipsis to exactly three dots
...): This received strong support. Carsten Bormann noted this is primarily a style issue and the majority preference should be followed. In the chat, Rohan Mahy asked if{ ... }would remain legal in the grammar. Carsten Bormann responded that it never was, and Вадим Гончаров suggested parsers treat it as an unimplemented reserved word to emit clean error messages. - Proposals 3, 4, & 9 (Removing the ellipsis tag vs. full removal): Joe Hildebrand expressed a desire to remove the tag and the complex parsing rules governing mixed string/byte-string ellipsis. Christian Amsüss suggested a middle ground (Proposal 9) where the syntax highlights or parses it as a structural element, but any attempt to convert it to CBOR results in an error (similar to an unrecognized application extension). Joe Hildebrand agreed that this approach makes Proposal 4 obsolete and can work, provided the parser errors out.
3. Removing Code Point 999 for Unknown App Extensions (Proposal 5)
- Discussion: This proposal to remove the placeholder code point had solid support, with participants noting it could easily be added back in the future if required.
4. Removing Concise Reference Identifiers (CRIs) (Proposal 6)
- Discussion: Joe Hildebrand had proposed removing CRIs from draft-ietf-cbor-edn-literals. Вадим Гончаров suggested making them optional to implement. Carsten Bormann explained that CRIs are not on the mandatory-to-implement list, but including them in this document might give them unintended normative weight. He noted that CRIs could be easily moved back to the CoRE Working Group's external references draft, draft-ietf-cbor-edn-e-ref. Rohan Mahy agreed, noting that the security considerations for CRIs are more relevant to the CoRE Working Group.
- Outcome: There was general agreement to remove CRIs from this document and manage them within the CoRE Working Group.
5. Removing C-Style Comments (Proposal 7)
- Discussion: Rohan Mahy and Joe Hildebrand supported removing C-style comments. Carsten Bormann raised concerns that removing them now would prevent adding them later due to potential syntactic ambiguities. Rohan Mahy countered that C-style comments inside quoted strings have not been used in the wild and can lead to unintuitive end-of-quote behaviors that are difficult to debug. Joe Hildebrand expressed that while he prefers C-style comments, backward compatibility dictates keeping bare slashes (
/ /), so C-style comments should be removed entirely rather than having dual comment syntaxes. - Outcome: Joe Hildebrand agreed to submit a clean proposal to remove C-style comments entirely.
6. Limiting Backtick Delimiters (Proposal 8)
- Discussion: The proposal to limit backtick delimiters to a maximum of eight did not receive positive feedback on the mailing list or in the meeting and will not be pursued.
7. Non-JSON Decimal Numbers (Proposal 10)
- Discussion: Carsten Bormann categorized this proposal into three separate issues:
- Plus signs in decimals: JSON does not allow them, but the current draft does.
- Removing insignificant zeros (e.g.,
3.or.3): Carsten Bormann argued that this is crucial for copy-paste usability from programming languages. Rohan Mahy and Joe Hildebrand expressed a preference for sticking strictly to JSON-conforming numbers to keep things simple. - Adding leading zeros (e.g.,
0030): This presents a security concern due to potential octal number confusion (where0030might be interpreted as octal 24). Вадим Гончаров strongly supported removing support for leading zeros to avoid this confusion.
- Outcome: Carsten Bormann will submit a minimal proposal addressing the security risks of leading zeros while trying to preserve useful copy-paste formats.
8. Removing Prefix Options from Backtick Quoted Strings (Proposal 11)
- Discussion: Rohan Mahy highlighted his proposal (archived here) to avoid using application prefixes directly in front of backtick-delimited strings. Instead, the canonical form
CRI<<foo>>can be used to handle extensions cleanly. - Outcome: Christian Amsüss urged participants to review the thread on the mailing list and share feedback.
9. New Proposals
- Discussion: Вадим Гончаров announced he is working on two new proposals:
- Allowing optional commas in maps.
- Moving encoding indicators to the front of application prefixes.
- Outcome: Вадим Гончаров will submit these to the list once he has finalized the ABNF.
Decisions and Action Items
- Decision: Remove CRI (Concise Reference Identifier) support from draft-ietf-cbor-edn-literals and return its definition and security considerations to the CoRE Working Group (specifically draft-ietf-cbor-edn-e-ref).
- Action Item: Joe Hildebrand to submit a formal proposal to remove C-style comments entirely from the specification.
- Action Item: Carsten Bormann to draft a refined proposal on decimal numbers that specifically addresses and mitigates the security risks of octal confusion caused by leading zeros.
- Action Item: Вадим Гончаров to submit proposals regarding optional commas in maps and the positioning of encoding indicators once the ABNF is prepared.
- Action Item: Christian Amsüss, Barry Leiba, and Paul Hoffman to review open Pull Requests on draft-ietf-cbor-edn-literals to separate purely editorial changes from substantial ones to speed up merging.
Next Steps
- Participants have approximately one week to submit any remaining or updated proposals for draft-ietf-cbor-edn-literals to the mailing list.
- The next interim meeting will focus on the Working Group Last Call for draft-ietf-cbor-serialization.
- Barry Leiba and Carsten Bormann requested that participants submit any substantial comments on draft-ietf-cbor-serialization well in advance of the next interim meeting to allow the group time to digest them.
Related Documents
draft-ietf-cbor-edn-e-ref, draft-ietf-cbor-edn-literals, draft-ietf-cbor-serialization