Skip to content

Add documentation for creating nitlsconfig gRPC channels - #1022

Open
alexdubois-ni wants to merge 10 commits into
masterfrom
users/adubois/updateDocsForNITLSConfigIntegration
Open

alexdubois-ni wants to merge 10 commits into
masterfrom
users/adubois/updateDocsForNITLSConfigIntegration

Conversation

@alexdubois-ni

Copy link
Copy Markdown
Collaborator

- [ ] I've updated CHANGELOG.md if applicable.

- [ ] I've added tests applicable for this pull request

What does this Pull Request accomplish?

Provides documentation for utilizing nitlsconfig with nidaqmx-python.

Why should this Pull Request be merged?

Since we're not opting to add examples, we should at the very least provide public documentation that highlights how to use nitlsconfig to produce mTLS encrypted channels using NI TLS, and walk customers through some of the required setup.

This matches the existing documentation that was added to nimi-python. However, the language did need to change because standard NI driver APIs ONLY have a session object with gRPC options, whereas NI-DAQmx has multitudes. I produced a short summary aligned with changelog mentions to at least make it clearer here.

What testing has been done?

N/A. This is documentation only. Full integration is done in this PR and ATS tests will soon follow: #1019

@alexdubois-ni
alexdubois-ni requested a lite review from Copilot September 14, 2026 15:54
@alexdubois-ni alexdubois-ni changed the title Add documentation for creating nitlsconfig gRPC channels to existing … Add documentation for creating nitlsconfig gRPC channels Sep 14, 2026
@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Test Results

    46 files  ±0      46 suites  ±0   1h 17m 29s ⏱️ - 2m 13s
 3 181 tests ±0   2 564 ✅ ±0     617 💤 ±0  0 ❌ ±0 
61 734 runs  ±0  49 336 ✅ ±0  12 398 💤 ±0  0 ❌ ±0 

Results for commit 3a82120. ± Comparison against base commit a40e11c.

♻️ This comment has been updated with latest results.

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.

🟡 Changes recommended

Installation guidance must include nitlsconfig, and certificate-exchange requirements must be qualified for TLS-enabled channels.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Adds documentation for creating NI-DAQmx gRPC channels with nitlsconfig, including mTLS setup and lifecycle guidance.

Changes:

  • Documents channel creation, TLS configuration, and custom options.
  • Adds a nitlsconfig intersphinx mapping.
File summaries
File Summary
docs/grpc_session_options.rst Adds nitlsconfig usage and mTLS guidance; installation and TLS wording require updates.
docs/conf.py Registers nitlsconfig documentation for cross-references.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/grpc_session_options.rst
Comment thread docs/grpc_session_options.rst Outdated
Comment thread docs/grpc_session_options.rst Outdated
Comment thread docs/grpc_session_options.rst Outdated
…ers/adubois/updateDocsForNITLSConfigIntegration

@zhindes zhindes left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Brad's on it; I trust y'all

… sections, and created formal sections altogether.
Comment thread docs/grpc_session_options.rst Outdated
Comment thread docs/grpc_session_options.rst Outdated
Comment thread docs/grpc_session_options.rst Outdated
Comment thread docs/grpc_session_options.rst Outdated
Comment thread docs/grpc_session_options.rst Outdated
Comment thread docs/grpc_session_options.rst
Comment thread docs/grpc_session_options.rst Outdated
$ python -m pip install nidaqmx[grpc]

Every NI-DAQmx gRPC object is created from a ``grpc.Channel`` that you build and pass to
:py:class:`nidaqmx.GrpcSessionOptions`. The constructors for :py:class:`nidaqmx.Task`,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Intersphinx is not linking to nidaqmx.Task and nidaqmx.Scale because those are aliases that Sphinx doesn't know about.

Easy fix: Use nidaqmx.task.Task and nidaqmx.scale.Scale here.

Less easy fix: change nidaqmx/__init__.py to define Task and Scale as type aliases rather than imports,
e.g.

import nidaqmx.task

Task: TypeAlias = nidaqmx.task.Task

This is less easy because it could have unintended side effects and involves typing_extensions.

alexdubois-ni and others added 6 commits September 17, 2026 17:24
Co-authored-by: Brad Keryan <brad.keryan@ni.com>
Co-authored-by: Brad Keryan <brad.keryan@ni.com>
Co-authored-by: Brad Keryan <brad.keryan@ni.com>
Co-authored-by: Brad Keryan <brad.keryan@ni.com>
Co-authored-by: Brad Keryan <brad.keryan@ni.com>
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.

4 participants