Skip to content

docs: refresh CONTROLLER_REGISTRY example in PRD after #896 - #937

Merged
oboehmer merged 1 commit into
netascode:mainfrom
ChristopherJHart:docs/prd-registry-example-refresh
Sep 3, 2026
Merged

docs: refresh CONTROLLER_REGISTRY example in PRD after #896#937
oboehmer merged 1 commit into
netascode:mainfrom
ChristopherJHart:docs/prd-registry-example-refresh

Conversation

@ChristopherJHart

Copy link
Copy Markdown
Collaborator

Summary

Refreshes the CONTROLLER_REGISTRY example in dev-docs/PRD_AND_ARCHITECTURE.md so it matches the API that #896 shipped. Documentation only — no code paths touched.

Split out of #936, where it was originally bundled with an unrelated env var correction.

Problem

The example still documents the pre-refactor API:

Doc showed Actual API after #896
CredentialSet(env_vars=[...]) positional tuple fields={kind: ENV_VAR} mapping
auth_method="token" string AuthMethod.TOKEN enum member
insecure_env_var absent present — backs should_verify_ssl()
IOS-XE sets had URL only sets carry device username/password
credential_sets=[...] list ControllerConfig.credential_sets is a tuple

Anyone following the example to add a controller would write code that fails to construct.

Changes

Updated the SDWAN and IOS-XE entries in that code block to match nac_test/core/controller.py on main, and carried over the comment explaining that IOSXE_URL and IOSXE_HOST both map to kind="url" because the former is being phased out.

Not included

I did not add an NXOS entry to the example. The block already ends with # CC, MERAKI, FMC, ISE follow the same pattern... and has never enumerated every controller, so adding NXOS would gain little while making this PR depend on #895 merging first. Keeping it out leaves this as pure mechanical cleanup that can merge in any order.

Test plan

  • Documentation-only change
  • Example verified line-by-line against nac_test/core/controller.py on main
  • Field names, enum member, and tuple/list types cross-checked against the ControllerConfig and CredentialSet dataclass definitions

Related


🤖 AI Generation Metadata

  • AI Generated: Yes
  • AI Tool: claude-code
  • AI Model: claude-opus-5
  • AI Contribution: ~100%
  • AI Reason: documentation correction
  • Human Oversight: Reviewed by Christopher Hart

The CONTROLLER_REGISTRY example in the architecture document still showed
the pre-refactor API that PR netascode#896 replaced:

- `CredentialSet(env_vars=[...])` positional tuple, replaced by the
  `fields={kind: ENV_VAR}` mapping
- `auth_method="token"` string, replaced by the AuthMethod enum
- `insecure_env_var` missing entirely, added by netascode#896 to back
  should_verify_ssl()
- the IOS-XE credential sets omitted the device username/password that
  the real registry entry has always carried
- `list` literals where ControllerConfig.credential_sets is a tuple

Updated the SDWAN and IOS-XE entries to match
nac_test/core/controller.py. Documentation only.

AI-Generated: yes
AI-Tool: claude-code
AI-Model: claude-opus-5
AI-Percent: 66
AI-Reason: documentation correction

@oboehmer oboehmer 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.

Thanks! We should really drop code examples from this doc ;-)

@oboehmer
oboehmer merged commit 20a4cfb into netascode:main Sep 3, 2026
13 checks passed
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