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

"Amanda Baber via RT" <[email protected]> Mon, 25 May 2026 18:30:32 +0000
Newsgroups gmane.ietf.types
Message-ID <[email protected]>
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]