Lightweight headless CI distribution (no MCP, LSP, interactive UI)

Open
#175 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
csharp

Research direction

No files or tests are named; start by inspecting the current single-binary distribution and its build configuration, then trace the entry points for import, query, assert, and CRUD. Check how JSON output, exit codes, and workload-identity authentication are currently handled. Done means a compressed CI distribution under 15 MB that requires neither an interactive terminal nor a browser.

Written by the indexing model from the issue text.

Description

automation P1

Feedback source

External user feedback (travel multi-agent workshop team).

Problem

The current single-binary distribution bundles everything: interactive shell, MCP server, LSP, brokered auth, OpenTelemetry, ARM management. For CI/CD use cases (data seeding, CRUD, queries, integration test validation), most of this is unnecessary weight and attack surface.

Proposed solution

Ship a separate lightweight, headless CI distribution with:

  • Predictable exit codes (stable contract)
  • JSON output mode (--output json)
  • Workload-identity authentication (federated credentials, no interactive browser)
  • Core commands: import, query, assert, CRUD
  • No MCP, LSP, brokered authentication, or interactive UI

Implementation options (in priority order)

  1. Same .NET codebase with trimming/Native AOT — feature-flag the build to exclude MCP/LSP/interactive modules, use .NET publish trimming or NativeAOT for a smaller binary
  2. Go or Rust reimplementation of the CI-only subset — smallest possible binary, no runtime dependency

Splitting the feature set is more important than changing languages.

Relationship to other issues

  • Complements #155 (A1 — non-interactive output contract)
  • Addresses size concern in #174
  • Pairs with CI/CD documentation (#TBD)

Acceptance criteria

  • CI distribution is < 15 MB compressed
  • Supports workload-identity auth (OIDC federated credentials)
  • Stable exit-code contract documented
  • JSON output for all commands
  • No dependency on interactive terminal or browser
Dominant language
C#
Stars
3
Forks
7
Avg merge
1d 9h
Merged PRs (30d)
18

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Azure/CosmosDBShell

All issues in Azure/CosmosDBShell

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.