Skip to content

feat(cli): promote profile commands to top level - #3258

Open
shiju-nv wants to merge 1 commit into
NVIDIA:mainfrom
shiju-nv:feat/cli-profile-commands
Open

shiju-nv wants to merge 1 commit into
NVIDIA:mainfrom
shiju-nv:feat/cli-profile-commands

Conversation

@shiju-nv

@shiju-nv shiju-nv commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Profiles are currently split between provider list-profiles and provider profile, with no human-readable view of a single definition. This adds openshell profile for discovery and management, including describe, while retaining the existing nested commands through shared handlers.

Related Issue

Closes #2588.

Related implementation: #3068. Both proposals support the legacy commands.

Changes

  • Add top-level profile list, describe, export, import, update, lint, and delete, with a validated --type provider filter for listing.
  • Retain provider list-profiles and provider profile …, including their arguments, output options, and workspace/global flags. Both entry points use the same execution handlers.
  • Show a flat NAME / TYPE / CATEGORY / SOURCE / SCOPE list and follow the gateway's continuation tokens through full or short pages, preserving same-name entries across scopes.
  • Use the gateway's import-only profile catalog and shared catalog loader; document explicit imports and interceptor-managed definitions.
  • Describe profile metadata, credential names/authentication, declared endpoint ports and policy settings, binaries, source, and scope. JSON/YAML use the existing complete profile serialization; describing a definition does not retrieve provider-instance credentials.
  • Show TLS handling and the uninspected-credential opt-in independently, so raw tunnels are distinguishable from inspected endpoints. Read the current gateway’s typed endpoint modes through the shared conversion helpers, preserving unknown numeric values in descriptions. Show MCP method defaults, tool-name validation, and declared versions, including case-insensitive protocol spellings, alongside explicit rule counts.
  • Test argument equivalence, old/new CLI output and scope forwarding, pagination, missing-profile errors, and structured description/export equivalence, using imported example-profile fixtures.
  • Update published docs, architecture guidance, public skills, examples, and E2E command invocations to use the top-level form.

Compatibility note: legacy names and flags remain supported, but both list spellings now use the flat human-readable table. The JSON/YAML profile schema is unchanged. Existing import/lint file and directory flags and the update ID/file arguments remain unchanged. No gateway or protobuf API changes are included.

Testing

  • mise run pre-commit passes
  • Unit tests added/updated
  • E2E tests added/updated (if applicable)

Current-main verification: 10 profile library tests and 8 CLI parser tests passed. All 76 tests in the compiled provider integration target passed, including pagination, scope forwarding, structured description/export equivalence, provider readiness, credential refresh, and safe error handling. Pagination coverage includes full terminal pages and multiple short nonterminal pages. Live sandbox E2E was not run for this CLI change.

Tests and the full pre-commit gate passed on main e38d7254e. The final rebase to 903d9a0e7 preserves the exact PR patch; the only intervening Rust change is a copyright comment. License, Python, Helm, Markdown, script syntax, and Rust formatting checks were repeated on the final tree.

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

@copy-pr-bot

copy-pr-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@shiju-nv
shiju-nv force-pushed the feat/cli-profile-commands branch from e868727 to b9b64f1 Compare September 15, 2026 07:16
@shiju-nv
shiju-nv marked this pull request as ready for review September 15, 2026 07:17
@natedemoss

natedemoss commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

thanks for the pr, #3068 has been closed as stale fyi

@johntmyers

Copy link
Copy Markdown
Collaborator

gator-agent

Blocked

Gator is blocked because GitHub reports that this branch has merge conflicts with main.

Next action: @shiju-nv, please update the branch from main, resolve the conflicts, and push the resolved head so code review can begin.

Gator metadata
  • Head SHA: b9b64f1b916b86c0647bdb265433a2c22e904784
  • Gator payload: 9
  • Next state: gator:blocked
  • Blocked reason: merge_conflict

@johntmyers johntmyers added the gator:blocked Gator is blocked by process or repository gates label Sep 17, 2026
@shiju-nv
shiju-nv force-pushed the feat/cli-profile-commands branch 3 times, most recently from 652fe9b to cfe00bb Compare September 18, 2026 19:03
Add profile discovery and management commands with shared handlers for
the existing provider entry points. List a flat catalog across scopes
and follow continuation tokens through full and short pages.

Describe metadata, credentials, endpoints, TLS inspection, and MCP access
settings while preserving complete JSON/YAML definitions. Cover parser
equivalence, scope forwarding, pagination, and inspection settings with
focused unit and compiled-CLI integration tests.

Update docs, public skills, examples, and E2E command invocations.

Refs NVIDIA#2588

Signed-off-by: Shiju <shiju@nvidia.com>
@shiju-nv
shiju-nv force-pushed the feat/cli-profile-commands branch from cfe00bb to 24a53a4 Compare September 18, 2026 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gator:blocked Gator is blocked by process or repository gates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(cli): promote profile to top-level command with list/describe/export/import

3 participants