Skip to content

Use-case guides, first four (phase 3) - #559

Draft
joshdrake wants to merge 6 commits into
nextfrom
docs/phase-3-guides
Draft

Use-case guides, first four (phase 3)#559
joshdrake wants to merge 6 commits into
nextfrom
docs/phase-3-guides

Conversation

@joshdrake

Copy link
Copy Markdown
Contributor

Needs validation before it is shown. use-cases/sso-device-factor.mdx is written from the API specification, the Terraform provider, and the howto.smallstep.com Okta article; nobody has walked it against the product. It stays hideFromSidebar: true and says so at the top of the page. The Smallstep-side objects (PUT /sso, POST /sso/clients) are documented as customer-created because the public API and the Terraform provider expose them; the internal runbook still creates them in Retool, so a reviewer should confirm the API path works for an entitled team.

Rendering. The pages use Tabs/Tab, <<placeholder>> tokens, and explicit heading ids, which exist only on the website branch josh/docs-content-package (smallstep.com#1220). They render there; on the current site the tokens show as text and the tabs stack.

Phase 3 of the docs redesign: the first four use-case guides on the nine-step skeleton, each with troubleshooting entries and a skill.

Pages

Page Kind Built from
use-cases/wifi.mdx guide tutorials/protect-wireless-networks.mdx (guide part); melange use-cases/wifi.md, concepts/setup-playbook.md (vendor and MDM tab set); learn/radsec.mdx; the 2025-01-01 spec; Terraform provider 0.7.0 docs
use-cases/wired.mdx guide tutorials/protect-wired-networks.mdx; melange use-cases/wired.md (dot3svc, PKCS#11 caveat, vendor list)
use-cases/web-apps.mdx guide tutorials/browser-certificate-setup-guide.mdx; melange use-cases/browser-mtls.md; the spec's /protect/browser; Terraform smallstep_browser
use-cases/sso-device-factor.mdx guide, hidden melange use-cases/idp-device-factor.md; Notion "Add Smallstep to Okta as an Identity Provider" (Smallstep How-To, 2026-05-12); Notion "Okta: Creating Device IDP Using Retool" (2026-08-18) and "Configure Entra ID MFA [internal]" (2026-03-25) for the redirect URIs and the trust-roots rule; the spec's /sso and /sso/clients; Terraform smallstep_identity_provider*; the Console's Protect › SSO copy
reference/access-points.mdx reference the access-point section of the wireless tutorial (all ten vendors)
reference/radius-webhooks.mdx reference the RADIUS authorization webhook section of the wireless tutorial
reference/wlan-profile-xml.mdx reference the WLAN XML (wireless tutorial) and LAN XML (wired tutorial)
troubleshooting/README.mdx troubleshooting index new
troubleshooting/wifi/* (10) troubleshooting the wireless tutorial's ChromeOS verify list, Jamf and Intune alerts, and verify section; platform/troubleshooting-agent.mdx (SCEP failures, cannot access a resource, doctor)
troubleshooting/wired/* (4) troubleshooting the wired tutorial (switch state, Event Viewer, MAB, issuer hash); melange use-cases/wired.md (dot3svc)
troubleshooting/web-apps/* (4) troubleshooting the browser tutorial (policy merge, registry keys, certificate lists); platform/troubleshooting-agent.mdx (PKCS#11, expired certificates)
troubleshooting/sso-device-factor/* (4) troubleshooting the Okta how-to article (feature flag, email SAN, picker); the spec's lifecycleFailureURI
skills/{wifi,wired,web-apps,sso-device-factor}/SKILL.md skill the guide itself; each says which steps an agent does through the API and which it hands to a person

Old pages stay in the manifest with hideFromSidebar: true and retitled "(previous guide)".

Redirects (for the cutover table)

Old New
/docs/tutorials/protect-wireless-networks /docs/use-cases/wifi
/docs/tutorials/protect-wireless-networks#access-point-configuration-reference /docs/reference/access-points
/docs/tutorials/protect-wireless-networks#radius-authorization-webhooks /docs/reference/radius-webhooks
/docs/tutorials/protect-wired-networks /docs/use-cases/wired
/docs/tutorials/browser-certificate-setup-guide /docs/use-cases/web-apps

Placeholder tokens

From the catalogue: <<team-slug>>, <<ssid>>, <<radius-secret>>, <<authority-id>>, <<acme-directory>>, <<radius-server-name>> (used for serverHostname).

New, to add to the catalogue: <<api-token>>, <<nas-ip>>, <<radius-server-ip>>, <<radius-server-port>>, <<radius-server-id>>, <<credential-id>>, <<wifi-id>>, <<ethernet-id>>, <<browser-id>>, <<app-url>>, <<okta-domain>>, <<idp-issuer>>, <<idp-client-id>>, <<idp-client-secret>>.

<<radius-servers.us-east>> is not used: today's managed RADIUS returns one serverIP; per-region servers are the dedicated deployment, which the guide describes as provisioned by Smallstep.

Choices made

  • entitlement: pro on all four guides. The brief said entitlement: team or the tier the melange use-case file names; Team was removed on 2026-09-13 and the use-case files name no tier, so the paid self-serve tier is used. Change in one place per page if the entitlement fragment decides otherwise.
  • Vocabulary. "Smallstep RADIUS" throughout; the multi-tenant service is "the API calls it managed RADIUS" once, the dedicated deployment is described without the "Enterprise RADIUS" label. "WAP/NAS IP address" and "Certificate Manager" appear only as parenthetical Console labels. Vendor menu labels are quoted verbatim, which leaves "WiFi" in the UniFi and Workspace ONE menu paths and in the Intune OMA-URI.
  • Wired switch tabs. One "Any switch" tab with the source's vendor-neutral shape; the six vendors named in melange are listed as planned rather than invented (WEB-3570).
  • Web apps verifier tabs. One "Your app or proxy" tab; Entra CBA, Cloudflare Access, Auth0, Salesforce, and Okta are named as not yet documented.
  • Console versus API. The guides create objects with the API, as the current pages and the Quickstart do, because the new Wi-Fi network and RADIUS forms in the Console are behind the internal-only awesomeWifi flag and the customer-visible form is the older one. The Console is named as the place where every object appears.
  • Time estimates (20, 15, 15, 30 minutes) are estimates.
  • Windows profile XML moved to its own reference page so both network guides share it.
  • Vale. API field names added to accept.txt; Device.* keys and <<tokens>> added to TokenIgnores; two code blocks per network guide are wrapped in {/* vale Google.Spacing = NO */} toggles because vale flags Device.Serial inside fenced code. The toggles render to nothing (checked).

Checks

  • vale --no-wrap --glob='!step-cli/reference/**' on all 31 new pages: 0 errors (with mdx2vast installed per CONTRIBUTING).
  • markdown-link-check -q -c .github/mdl.config.json per new page: 0 dead links. One false positive removed: the checker cannot resolve {#id} explicit anchors within a page, so the Wi-Fi verify step names step 8 in prose instead of linking #troubleshoot.
  • Stop-word grep: clean apart from the parenthetical labels and vendor menu paths above.
  • All nine anchors present, in order, in each guide (what-you-get, before-you-start, create, configure-external, deliver, verify, operate, troubleshoot, automate).
  • Manifest script: 384 entries, every path exists, no orphan .mdx outside .claude/, step-cli/reference/, skills/, and the two known exceptions.
  • Render check on the website branch (next dev -p 5052, content/docs symlinked to this branch): every new page returns 200 with no runtime error; the four guides render two tab lists each (steps 4 and 5); placeholder chips render in prose and in fenced code; #what-you-get and #automate ids are present; /docs/use-cases/wifi.md returns the Markdown with tokens intact.

Left out

  • Per-vendor switch instructions and verifier-specific (Entra CBA, Cloudflare, Auth0, Salesforce, Okta) steps: no source material exists; named as planned in the pages.
  • The Entra ID tab of the SSO guide carries only the redirect URI and the mechanism; the Entra admin steps were not in any source.
  • Google Workspace as an SSO identity provider: named, no steps.
  • "Test connectivity" and "Join from this device" device checks, hello-mTLS test page, RADIUS regions, and reply attributes as self-serve: not shipped, not described as available.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NZTV2L582SYSGwfbEQyrQL

joshdrake and others added 5 commits September 13, 2026 15:37
…ng, and skill

Rewrites the Wi-Fi tutorial as use-cases/wifi.mdx with the fixed anchors,
vendor tabs for access points, per-MDM delivery tabs, placeholder tokens, and
REST and Terraform side by side. The access-point vendor reference moves to
reference/access-points.mdx, the RADIUS authorization webhook specification to
reference/radius-webhooks.mdx, and the Windows WLAN and LAN profile XML to
reference/wlan-profile-xml.mdx. Ten troubleshooting entries under
troubleshooting/wifi/ come from the current page and the agent troubleshooting
page. skills/wifi/SKILL.md walks the guide's steps and says which an agent can
do through the API.

The guide no longer assumes Smallstep set up the backend (EFF-275): the
dedicated RADIUS deployment is described as provisioned by Smallstep in one
sentence, and every other object is created by the customer.

Vale: API field names added to the vocabulary; Device.* metadata keys and
placeholder tokens ignored; the two code blocks that carry "Device.Serial" are
wrapped in Google.Spacing toggles because vale does not skip fenced code here.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NZTV2L582SYSGwfbEQyrQL
Rewrites the wired tutorial as use-cases/wired.mdx, reusing the Wi-Fi
credential and RADIUS server and creating only the wired network. The switch
step keeps the vendor-neutral shape from the source because no vendor-specific
switch content exists yet (WEB-3570); per-vendor tabs are named as planned.
Four troubleshooting entries under troubleshooting/wired/ come from the source
page and the wired use-case notes (Wired AutoConfig, MAB, issuer hash).
skills/wired/SKILL.md walks the guide's steps.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NZTV2L582SYSGwfbEQyrQL
… and skill

Rewrites the browser certificate tutorial as use-cases/web-apps.mdx. The guide
creates the credential and the web app resource with the API instead of
assuming support set the team up, gives the verifier step one tab (your app or
proxy) and says which verifiers are not documented yet, and turns the per-OS
browser policy material into Agent, Jamf Pro, and Google Workspace delivery
tabs. Four troubleshooting entries under troubleshooting/web-apps/ come from
the source page and the agent troubleshooting page. skills/web-apps/SKILL.md
walks the guide's steps.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NZTV2L582SYSGwfbEQyrQL
…ated

Replaces the phase 1 stub with a full guide written from the 2025-01-01 API
specification (/sso, /sso/clients), the Terraform provider, and the
howto.smallstep.com Okta article. The Smallstep-side objects are created with
the API rather than by Smallstep staff; the Okta tab carries the article's
steps, the Entra ID tab carries only the redirect URI and the mechanism. The
page says at the top that it has not been walked against the product and stays
hidden from the sidebar. Four troubleshooting entries under
troubleshooting/sso-device-factor/ and skills/sso-device-factor/SKILL.md.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NZTV2L582SYSGwfbEQyrQL
Use cases: Wi-Fi, Wired, and Web apps (mTLS) point at the new guides; the
previous tutorial pages stay in the manifest hidden from the sidebar so their
URLs work until the cutover; SSO device factor stays hidden. Reference gains
the access point, RADIUS webhook, and Windows profile XML pages.
Troubleshooting gains an index page and one entry per symptom, grouped by use
case, beside the agent page.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NZTV2L582SYSGwfbEQyrQL
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

The four guides carried `entitlement: pro`. The tier that includes each
use case is open (melange decision 24); the working assumption in the
design and the brief is Team, the tier that includes device management,
so the frontmatter says `team` until pricing says otherwise. The key is
not rendered yet.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NZTV2L582SYSGwfbEQyrQL
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