Skip to content

DCL API#123

Open
cecille wants to merge 15 commits into
project-chip:mainfrom
cecille:dcl_api
Open

DCL API#123
cecille wants to merge 15 commits into
project-chip:mainfrom
cecille:dcl_api

Conversation

@cecille

@cecille cecille commented Jan 18, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new, well-structured API reference page for the DCL and links to it from the main DCL documentation. The new page provides a helpful overview of the DCL REST API. My review includes suggestions to enhance the consistency and completeness of this new documentation, such as shortening lengthy section titles for better readability, adding missing JSON response examples to provide a more comprehensive guide for developers, and correcting a minor formatting inconsistency.

Comment thread src/en/guides/dcl/api_reference.md Outdated
Comment thread src/en/guides/dcl/api_reference.md Outdated
Comment thread src/en/guides/dcl/api_reference.md Outdated
Comment thread src/en/guides/dcl/api_reference.md Outdated
Comment thread src/en/guides/dcl/api_reference.md Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

Comment thread src/en/guides/dcl/api_reference.md Outdated
Comment thread src/en/guides/dcl/api_reference.md Outdated
Comment thread src/en/guides/dcl/api_reference.md Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

@cecille cecille changed the title [WIP - not yet ready, want to see preview] DCL API DCL API Jan 22, 2026
@cecille cecille marked this pull request as ready for review January 22, 2026 04:30
Comment thread src/en/guides/dcl/api_reference.md Outdated

### REST API
* **Query All Root Certificates:** `/dcl/pki/root-certificates`
* **Returns:** The list of all approved PAA certificates.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Q for DCL folks - are the signing keys for the CDs also in here?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Private keys are never put on chain.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bad phrasing - what I was attempting to ask was whether the certificates for the CD signing keys in this portion of the DCL.

Comment thread src/en/guides/dcl/api_reference.md Outdated
**Description:** Provides the list of Operational Root CA Certificates (RCAC) and Operational Intermediate CA Certificates (ICAC).

### REST API
* **Status:** Under Development

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Q for the DCL folks - I think this might correspond to the noc-root-certificates / noc-ica-certificates, but there are some missing fields.

It's also not clear how the -vid- tables factor in here.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vid-specific queries are just helper queries to query RCACs/ICACs by VID (instead of common querying by subject/SKID as in Device Attestation certificates).
Please see #123 (comment) for details.

@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123


## Operational Trust Anchors Schema
**Description:** Provides the list of Operational Root CA Certificates (RCAC) and Operational Intermediate CA Certificates (ICAC).

@Abdulbois Abdulbois Jan 29, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rest endpoint for this is /dcl/pki/noc-ica-certificates

Returns the list of all RCAC and ICAC certificates and associated Vendor ID

Pagination is required

To query by Vendor id the following endpoint /dcl/pki/noc-vid-ica-certificates/{vid} can be used

Returns the list of RCAC and ICAC certificates and associated Vendor ID

Pagination is not applicable

@cecille cecille Jan 29, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The JSON ref for that doesn't match the spec description. It lists
"certificateType": "DeviceAttestationPKI",

and is missing the IsVidVerificationSigner. The name matches, but this doesn't seem like an implementation of that spec schema.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see #123 (comment)

---

## Additional Schemas & Indices

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may also mention /dcl/pki/all-certificates/.... endpoints which return both DA and NOC based certificates.

---

## Operational Trust Anchors Schema
**Description:** Provides the list of Operational Root CA Certificates (RCAC) and Operational Intermediate CA Certificates (ICAC).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like exact endpoints are not mentioned here:

  • /dcl/pki/all-noc-certificates
  • /dcl/pki/all-noc-certificates/{subject}
  • /dcl/pki/all-noc-certificates/{subject}/{subject_key_id}
  • /dcl/pki/noc-vid-root-certificates/{vid}
  • /dcl/pki/noc-vid-certificates/{vid}/{subject_key_id}
  • /dcl/pki/noc-ica-certificates
  • /dcl/pki/noc-vid-ica-certificates/{vid}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comment below - it's not clear to me how these relate to the spec schema and they're currently unpopulated. I'm going to leave this as a follow up for the DCL team because I genuinely don't understand the division of mapping here. This should be written by someone who can properly explain it.

@ashcherbakov ashcherbakov Feb 5, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All the endpoints I mentioned are for the schema https://github.com/CHIP-Specifications/connectedhomeip-spec/blob/master/src/service_device_management/DistributedComplianceLedger.adoc#5-operational-trust-anchors-schema.

  • NOC == Operational Trust Anchors (so all-noc means bothRCAC and ICAC)
  • RCAC == noc-root
  • ICAC == noc-ica
  • vid-specific queries are just helper queries to query RCACs/ICACs by VID (instead of common querying by subject/SKID as in Device Attestation certificates).

As part of the current task to review changes between DCL implementation and the spec, we are going to clarify the details and either fix the difference between the spec and the code, or provided better mapping/clarifications.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, until that point, I would hesitate to document this endpoint as implementing the spec schema. If the DCL team wants to come back later update this section, that should be done after the cleanup.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer to leave this to the DCL team to update once those fixes are made.

* **Query by Subject & SubjectKeyID:** `/dcl/pki/certificates/{subject}/{subjectKeyId}`
* **Returns:** A specific certificate.
* **Pagination:** Not applicable.
* NOTE - subject needs to be percent formatted, which is a transformation of the data returned from the base root-certificates request.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may also mention

  • /dcl/pki/certificates?subjectKeyId={subjectKeyId}
  • /dcl/pki/certificates/{subject}


* **Query by VID, PID & Software Version:** `/dcl/compliance/certified-models/{vid}/{pid}/{softwareVersion}/{certificationType}`
* **Returns:** A boolean-like record indicating if the specific version is certified.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may also mention revoked models:

  • /dcl/compliance/revoked-models
  • /dcl/compliance/revoked-models/{vid}/{pid}/{software_version}/{certification_type}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right now there are no revoked models, and I'm not sure exactly what the corresponds to in the spec. I'd rather leave that as a follow up until a person from the DCL team can come and explain how that actually relates to the spec and what's intended to be in there.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's perhaps one of the DCL feature which is not mentioned explicitly in the spec. Will be updated as part of the current Spec Compliance task.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, let's leave this as is, and it can be added to this documentation once the spec work is done.


### Web Interface
* **Location:** Accessed via the **Models** view details page.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is also a way to return a list of Compliance records by cDCertificateId:
/dcl/compliance/device-software-compliance/{cDCertificateId}


* **Query by VID:** `/dcl/model/models/{vid}`
* **Returns:** All models associated with a specific Vendor ID.
* **Pagination:** **Required**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* **Pagination:** **Required**.
* **Pagination:** **Not applicable**.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, is there actually not pagination there? There are definitely vendors with more than 100 models. How do those work?

@Abdulbois Abdulbois Jan 29, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently that endpoint does not return models but vendor products(which contains info about name, partNumber and pid).

I hope in the upcoming release that should be changed to return all models associated with Vendor ID

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we're just using different words since the spec and the implementation wording is different. This endpoint returns information about vendor products. There are some vendors that have > 100 products. So are they all returned or are the results truncated?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it returns all vendor products at once

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand the differentiation between models and products here. Can you explain the difference? The endpoint name is models, but that seems to be a reference to the various PIDs. These terms seen interchangeable.

Comment thread src/en/guides/dcl/api_reference.md Outdated
* NOTE - `vid` (Vendor ID) is a decimal value

* **Query by VID & PID:** `/dcl/model/models/{vid}/{pid}`
* **Returns:** Details for a specific product.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe

Suggested change
* **Returns:** Details for a specific product.
* **Returns:** Details for a specific device model.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is a device mode here? That seems like a DCL term.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, and those relate "A unique combination of the VendorID and ProductID is used to identify a DeviceModel." So product and device model seem interchangeable in this context. Why is product incorrect here?

Co-authored-by: Abdulbois <30406506+Abdulbois@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

Comment thread src/en/guides/dcl/api_reference.md Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

Comment thread src/en/guides/dcl/api_reference.md Outdated
Comment thread src/en/guides/dcl/api_reference.md
@github-actions

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

Comment thread src/en/guides/dcl/api_reference.md
Comment thread src/en/guides/dcl/api_reference.md Outdated
Co-authored-by: Abdulbois <30406506+Abdulbois@users.noreply.github.com>
@github-actions

github-actions Bot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Preview deployed at https://d2doqw88td69eq.cloudfront.net/pr-123

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants