[media-types] [IANA #1450117] application/spdx3+json reg istration request

"Amanda Baber via RT" <[email protected]> Tue, 02 Jun 2026 05:11:39 +0000
Newsgroups gmane.ietf.types
Message-ID <[email protected]>
Hi Alexey,

Resending this revision from May 25th.

thanks,
Amanda

On Mon May 25 18:30:31 2026, amanda.baber wrote:
> Hi Alexey,
> 
> Can you review this revised request? They've included inline responses
> to your review after the template.
> 
> thanks,
> Amanda
> 
> =====
> 
> REVISION:
> 
> Name: Arthit Suriyawongkul
> 
> Email: [email protected]
> 
> Media type name: application
> 
> Media subtype name: spdx3+json
> 
> Required parameters: N/A
> 
> Optional parameters: version
> 
> The version parameter refers to the SPDX specification version in use.
> It follows a MAJOR.MINOR.PATCH structure, where the MINOR and PATCH
> fields
> are optional.
> 
> version = 1*DIGIT [ "." 1*DIGIT [ "." 1*DIGIT ] ]
> 
> Encoding considerations: binary
> 
> This media type has all of the same encoding considerations of
> application/json as described in [RFC8259] Section 8.1.
> 
> Security considerations: The format supports the ExternalRef and
> ExternalIdentifier classes, which provide links to external databases
> such as the National Vulnerability Database (NVD) and various security
> advisories. Users should be aware that following these links involves
> interacting with external systems.
> 
> SPDX 3 JSON documents do not allow embedding executable content.
> 
> Additionally, this media inherits the interoperability security
> considerations of application/json as described in [RFC8259] Section
> 12.
> 
> Interoperability considerations: The application/spdx3+json media type
> can
> be distributed free of external systems or processors. Internet
> text-processing applications will likely consume these documents.
> 
> This media type is not compatible with SPDX JSON, which uses a
> different
> data model and a different media type (application/spdx+json).
> 
> The application/spdx3+json media type is a strict subset of JSON-LD
> 1.1
> (https://www.w3.org/TR/json-ld11/).
> 
> Additionally, this media type inherits the interoperability
> considerations
> of application/json as described in [RFC8259].
> 
> Published specification: Current versions of the specification are
> available
> at https://spdx.github.io/spdx-spec/.
> 
> SPDX 3 JSON schema and serialization details can be found at
> https://spdx.github.io/spdx-spec/latest/serializations/.
> 
> Applications which use this media:
> 
> This media is intended to represent supply chain transparency data and
> system metadata. This includes, but is not limited to, software bills
> of
> materials (SBOMs), hardware bills of materials (HBOMs), vulnerability
> and
> security risk communications, and AI transparency and compliance
> documentation. It will be used by tools that produce, consume, or
> analyze
> these artifacts to facilitate trust, security, and compliance across
> the
> supply chain.
> 
> Fragment identifier considerations: N/A
> 
> Restrictions on usage: N/A
> 
> Provisional registration? (standards tree only): No
> 
> Additional information:
> 
> Deprecated alias names for this type: N/A
> 
> Magic number(s): N/A
> 
> File extension(s): .spdx3.json
> 
> Macintosh file type code: N/A
> 
> Object Identifiers: N/A
> 
> Person to contact for further information:
> 
> Name: Arthit Suriyawongkul
> 
> Email: [email protected]
> 
> Intended usage: COMMON
> 
> SPDX is an open standard. It is intended to be used to enable
> companies and
> organizations to share human-readable and machine-processable system
> package
> metadata to facilitate secure and compliant supply chain processes. An
> SPDX 3 JSON media type will be associated with a particular system
> package
> or set of packages and will contain information about it in the SPDX 3
> JSON format.
> 
> Author: Arthit Suriyawongkul <[email protected]>
> 
> Change controller: The Linux Foundation (contact: Kate Stewart
> <[email protected]>)
> 
> =====
> 
> RESPONSES:
> 
> > > This is similar to the two existing SPDX media types
> > > and aligned with SPDX principles to be vendor-neutral.
> > >
> > > Btw, we are aware of the possibility of using a "version" parameter
> > > to
> > > extend the existing "application/spdx+json" to accommodate multiple
> > > SPDX versions.
> > >
> > > At the same time, we see quite a big differences between the JSON
> > > formats of SPDX 3 and prior SPDX versions.
> >
> > Ok. It looks like SPDX 3 and SPDX 2 are not compatible (i.e. they use
> > different data models), so in this case a different media type is
> > fine.
> 
> Correct. They use different data models.
> 
> > > We are also aware of the implications of putting a version number
> > > inside the media type string itself (spdx3+json) and question if
> > > this
> > > means we will have to register another media type in the future
> > > when
> > > SPDX version 4 is released.
> >
> > It would depend on whether or not SPDX 4 is backward compatible with
> > SPDX 3. If it is, then application/spdx3+json can be used for SPDX 4.
> > If
> > not, then a new media type might be needed.
> >
> > The "Interoperability Considerations" section is specifically
> > designed
> > for discussing interoperability issues.
> 
> Thank you. It's good to know that registering a new media type isn't
> necessary,
> if the new version is backward compatible.
> (Although the mismatch between the media type string and the actual
> format
> version might cause confusion).
> 
> > > If IANA can further share its best practices and advice with us, it
> > > would be greatly appreciated.
> > >
> > > We track the application/spdx3+json media type registration here:
> > > https://github.com/spdx/spdx-spec/issues/1359
> > >
> > > Thank you again for your help, we are much appreciated.
> > >
> > > =====
> > >
> > > Name: Arthit Suriyawongkul
> > >
> > > Email: [email protected]
> > >
> > > Media type name: application
> > >
> > > Media subtype name: spdx3+json
> > >
> > > Required parameters: N/A
> > >
> > > Optional parameters: version
> > >
> > > The version parameter refers to the SPDX specification version
> > > in use.
> > >
> > > version = 1*DIGIT "." 1*DIGIT ["." 1*DIGIT]
> >
> > It is unclear to me why version is needed, unless there is a desire
> > to
> > possibly reuse the same media type for SPDX 3, 4, 5, etc.
> 
> Within SPDX 3, we have minor versions (3.0, 3.1, ...) as well.
> 3.1 extends 3.0 (containing more metadata fields) and maintains
> backward compatibility with 3.0, and so on.
> 
> 3rd-party tools, like protobom, use version parameter to help assist
> the version detection and decide how to process further.
> 
> (Note that protobom currently uses the wrong media type string, but
> its string matching method still allows it to work.
> See https://github.com/protobom/protobom/issues/409)
> 
> Without information from the version parameter, the SPDX 3 processor
> needs to start parsing the file first to get the version from the
> `specVersion` field.
> See the specVersion inside an SPDX 3 JSON file
> https://github.com/spdx/spdx-
> examples/blob/af7e2804a115b716335b4ead887e67fe9018fd60/software/example1/spdx3.0/example1.json#L6
> 
> (There is also a request for us to amend application/spdx+json (SPDX
> 2) to support an optional version parameter,
> as it will make their API use case easier.
> https://github.com/spdx/spdx-spec/issues/642
> -- we will work on that separately.)

_______________________________________________
media-types mailing list -- [email protected]
To unsubscribe send an email to [email protected]