Skip to content

Design the WSL-to-Windows Azure DevOps authentication Slice and contracts #56

Description

@hcoona

Goal

Complete the detailed design and contracts for one authentication Slice: a WSL caller directly invokes the Windows CLI to acquire an Azure DevOps access token for an explicitly requested personal Microsoft account or work account. The motivating scenarios are a personal Azure DevOps Git repository and cloning a company Azure DevOps Git repository. Azure Artifacts token acquisition and compatible-state reuse are included because its MSAL resource/scope is the same; its inclusion is settled, not a research decision left open.

This Issue coordinates design work. Only an accepted Delivery Wave entry authorizes advancement; this Issue does not authorize implementation or experiments.

Required outcomes

  • Select the concrete Windows runtime/dependency and host integration needed by the Slice, grounded in the accepted high-level architecture and public mechanism evidence.
  • Define the versioned CLI request/result/process contract and minimum Client Profile configuration contract, including explicit selection, Windows path/configuration ownership, tenant mapping, and typed failures. Keep account-kind heuristics and consumer service discovery outside the engine.
  • Define the cohesive Windows request design: strict account resolution, silent reuse, permitted interaction, provider-result validation, deadline/cancellation, owned UI/completion, caller disconnection, and persistence observations. Use C4 deployment and UML sequence/state views where they resolve a concrete design question.
  • Define the concrete candidate Profile and its external-dependency, consent/audit/branding, partitioning, and failure boundaries. Separate design acceptance from Profile activation/distribution and real-platform support evidence.
  • Update security analysis and the checked-in TMT model when actual flows or boundaries change; native-model edits require native open/analysis validation.
  • Specify scenario and contract validation for both account journeys and Git/Artifacts reuse. Reserve unit tests for core matching, scope, outcome, and lifetime logic. State unsupported combinations and the evidence needed before implementation or support acceptance.
  • Activate existing scheduled design/contract record routing only through its required reviewed governance changes, without creating parallel canonical specifications.

Boundaries

One Windows engine process per request; the WSL caller selects the Windows executable. No Linux CLI forwarding/detection, native Linux broker, network bridge, daemon, browser/device-code support expansion, confidential client, service identity, Git credential protocol, repository/organization discovery, package-manager plugin, or service credential lifecycle implementation.

Artifacts is included at the engine's existing access-token boundary. Feed authorization, any NuGet session-token exchange, and package-manager protocols stay in downstream consumers, just as Git repository discovery and credential protocols do. Exact resource tenants and distinct account/Profile/security contexts remain separate even when the Azure DevOps scope matches.

Design and public desk research only. No product code/import, executable experiment, dependency restore/build for a probe, installation, authentication/cache access, company/private repository access, feed access, Profile activation/distribution, packaging, or release. Existing exhausted probe limits are retained. Any later necessary experiment needs separate accepted authorization and an exact protocol before execution.

Acceptance

The Slice has accepted requirements, concrete architecture/design and contracts, scenario validation basis, and explicit unsupported cases with no unresolved material review findings. A choice that lacks a necessary premise remains unselected and cannot be treated as ready for implementation. Complete the design gate before proposing an implementation grant; do not enter implementation automatically.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions