Skip to content

RDKDEV-1423 Add ThunderClientLibraries Documentation - #338

Open
gourivarma3 wants to merge 2 commits into
rdkcentral:masterfrom
gourivarma3:feature/RDKDEV-1423
Open

RDKDEV-1423 Add ThunderClientLibraries Documentation#338
gourivarma3 wants to merge 2 commits into
rdkcentral:masterfrom
gourivarma3:feature/RDKDEV-1423

Conversation

@gourivarma3

@gourivarma3 gourivarma3 commented Jun 8, 2026

Copy link
Copy Markdown

RDKDEV-1423
Added component documentation for thunderclientlibraries
I have read the CLA Document and I hereby sign the CLA

Copilot AI review requested due to automatic review settings June 8, 2026 10:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds a comprehensive component-level documentation page for ThunderClientLibraries, describing the role of the client libraries, their design patterns (COM-RPC usage, interface acquisition, lifecycle), and integration expectations for consumers.

Changes:

  • Introduces a new docs/README.md with architecture/design narrative and Mermaid diagrams.
  • Documents threading model, state/lifecycle flows, and example call flows.
  • Adds module interaction matrices and configuration parameters.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/README.md Outdated
Comment thread docs/README.md Outdated
Comment thread docs/README.md
Comment thread docs/README.md Outdated
Comment thread docs/README.md Outdated
Comment thread docs/README.md Outdated
Comment thread docs/README.md Outdated
Copilot AI review requested due to automatic review settings July 29, 2026 08:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (3)

docs/README.md:7

  • The intro’s Windows fallback example only mentions 127.0.0.1:63000, but in this repo ProvisionProxy defaults to 127.0.0.1:7777 on Windows when PROVISION_PATH is unset (while SecurityAgent uses 127.0.0.1:63000). Suggest either removing the specific port example or listing both so readers don’t assume a single default port.
At the device level, these libraries serve processes that sit outside the Thunder plugin host but require access to capabilities that are managed centrally inside it. Examples include media pipeline processes that require DRM session creation through OpenCDM, web runtimes that need display or device capability metadata, and Bluetooth audio pipelines that need to stream audio frames to or from a paired device. On Linux/RDK-V, inter-process calls use UNIX domain sockets via Thunder's COM-RPC transport; on Windows builds, some clients fall back to TCP loopback (e.g., `127.0.0.1:63000`).

docs/README.md:110

  • The Mermaid diagram declares subgraph MSec["Media & Security"] twice and has an extra end, which will likely break Mermaid rendering or create unexpected nesting. Remove the duplicate subgraph and matching end so the graph parses cleanly.
        subgraph MSec["Media & Security"]
        subgraph MSec["Media & Security"]
            OA["OpenCDM\n(IAccessorOCDM)"]
            SAL["SecurityAgent\n(PluginHost::IAuthenticate)"]
            CGL["Cryptography\n(ICryptography)"]

docs/README.md:407

  • The configuration table lists Linux socket-path defaults, but on Windows the code falls back to TCP endpoints when these env vars are unset (SecurityAgent: 127.0.0.1:63000, Provisioning: 127.0.0.1:7777). Updating the defaults/description here keeps the table accurate across platforms.
| `SECURITYAGENT_PATH`           | env string     | `/tmp/SecurityAgent/token` | UNIX domain socket path used to connect to the SecurityAgent plugin.                                                             |
| `OPEN_CDM_SERVER`              | env string     | `/tmp/ocdm`                | UNIX domain socket path used to connect to the OpenCDMImplementation plugin.                                                     |
| `PROVISION_PATH`               | env string     | `/tmp/provision`           | UNIX domain socket path used to connect to the Provisioning plugin.                                                              |

gourivarma3 and others added 2 commits July 29, 2026 14:34
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 29, 2026 09:04
@gourivarma3
gourivarma3 force-pushed the feature/RDKDEV-1423 branch from ef6eaf3 to b71c4fd Compare July 29, 2026 09:04

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (3)

docs/README.md:407

  • The configuration table lists Linux-only defaults and describes these values as "UNIX domain socket path". In the code, SecurityAgent and ProvisionProxy fall back to TCP loopback endpoints on Windows (127.0.0.1:63000 and 127.0.0.1:7777). Please document the platform-specific defaults (or describe these as a generic COM-RPC endpoint) so the table remains accurate across supported platforms.
| `SECURITYAGENT_PATH`           | env string     | `/tmp/SecurityAgent/token` | UNIX domain socket path used to connect to the SecurityAgent plugin.                                                             |
| `OPEN_CDM_SERVER`              | env string     | `/tmp/ocdm`                | UNIX domain socket path used to connect to the OpenCDMImplementation plugin.                                                     |
| `PROVISION_PATH`               | env string     | `/tmp/provision`           | UNIX domain socket path used to connect to the Provisioning plugin.                                                              |

docs/README.md:107

  • In the design diagram, several interface types are unqualified (IAccessorOCDM, ICryptography, IProvisioning) while elsewhere in this document and in the codebase they are referenced as Exchange::.... Using the fully qualified names here avoids ambiguity and keeps the documentation consistent.
            OA["OpenCDM\n(IAccessorOCDM)"]
            SAL["SecurityAgent\n(PluginHost::IAuthenticate)"]
            CGL["Cryptography\n(ICryptography)"]
            PPL["ProvisionProxy\n(IProvisioning)"]

docs/README.md:103

  • The Mermaid diagram declares the same MSec subgraph twice (subgraph MSec[...] repeated). This is likely to break Mermaid parsing and/or produce an unexpected graph structure.

This issue also appears in the following locations of the same file:

  • line 104
  • line 405
        subgraph MSec["Media & Security"]
        subgraph MSec["Media & Security"]

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.

2 participants