Skip to content

docs(research): distinguish Artifacts token paths and evidence - #59

Merged
hcoona merged 1 commit into
main-v2from
research/artifacts-token-paths
Sep 11, 2026
Merged

hcoona merged 1 commit into
main-v2from
research/artifacts-token-paths

Conversation

@hcoona

@hcoona hcoona commented Sep 11, 2026

Copy link
Copy Markdown
Owner

Summary

The existing Artifacts source summary described the default session-token exchange without its direct-access-token alternative. Record both paths, distinguish SelfDescribing from Compact/PAT, and preserve what source inspection versus the accepted personal-account Git probe actually establishes. Align the architecture's explicit PAT exclusion and downstream validation requirements.

Authorization and Governing Records

Accepted main-v2 89c67730b08736d6fe430f9382d2cbefb50f6864, its current Delivery Wave, and #56 authorize bounded public research and design for this Slice. The owner requested durable intermediate findings and explicitly excludes PATs. Existing decisions 0003/0004 and request/result/identity requirements remain authoritative.

Scope and Non-Goals

Three existing Markdown records. No new record family, contract freeze, product implementation, adapter, Profile activation, native TMT edit, authentication/cache/resource access, or experiment. Artifacts stays within the selected engine acquisition scope; this change does not claim end-to-end NuGet/feed success or select a session-token fallback.

Record-System Impact

Update the current public-research baseline, architecture overview, and validation strategy together. The existing Artifacts section remains the evidence authority; architecture owns the design boundary and validation owns the remaining claim obligations. No separate scratch report or parallel conclusion ledger is created. Issue #56 carries progress.

Evidence and Reasoning

Pinned official source bca6c32fdb9611aea25819147ef4508f730aa5fb has opt-in direct access-token return as a NuGet Basic credential, default session-token exchange, conditional Compact/PAT selection, SelfDescribing validity handling, distinct session-cache behavior, and MSA passthrough/tenant mapping. Direct-return source also matches released v2.0.4 commit 14855bba1b20482623697fe9497cc5398d5077cd. The default is not a NuGet protocol requirement; account type does not control the direct-return branch.

The accepted probe proves one personal-account access-token/Git-discovery/reuse scenario. It did not use NuGet Basic authentication or access a feed. Neither universal direct-feed success nor mandatory MSA exchange follows from those observations. A shared resource/scope still supports the settled engine capability boundary.

Identity and Security Effects

Retain exact account/tenant validation and conditional external-registration eligibility. Document that upstream defaults can generate PATs; no such behavior is authorized or imported. Tokens remain opaque. No private account, target, credential, raw diagnostic, or service content is retained. The existing native threat-model roles/flows do not change.

Validation

  • git diff --check: passed.
  • Normal local hk: passed, including all 32 public-build runner conformance groups.
  • GitHub Repository Controls: passed (run).
  • Read-only source comparison verified the release-tag files against its resolved commit.

Review and Disposition

Root-origin finding ARTIFACTS-1 was independently triaged by /root/discovery_finding_triage before corrective edits: true positive, confidence 10/10, material omission of the direct-token branch. The triager independently retrieved six files at the original source pin and confirmed defaults, cache separation, and MSA claim limits. Required correction: qualify the exchange default, add the direct path, and retain downstream evidence limits. No new owner decision or experiment was needed. Full independent triage is recorded in this PR.

Independent /root/preparation_review passed both accepted Skills and contextual architecture/requirements/security/minimality review with no material findings. Reviewed base 89c67730b08736d6fe430f9382d2cbefb50f6864, exact tree fb85e776f38fd98812323c7fe41de1cf8937c6a5; the full independent review binding is recorded in this PR. All seven rechecks are evaluated in the refinement paragraph: no new typed trigger, Wave change, release, Profile selection, or runtime claim; current accepted dispositions remain applicable.

Upstream Provenance

Official Artifacts source commits and GCM scope source are linked in the evidence authority. No production code or cache behavior imported.

Record the direct NuGet access-token branch alongside default exchange,
including SelfDescribing and Compact/PAT semantics and cache differences.
Separate personal-account source support from the accepted Git observation
and the still-unobserved NuGet Basic and Artifacts feed path.

Align the selected Slice's PAT exclusion and downstream validation basis
without adding an authentication experiment or consumer implementation.

Refs: #56
@hcoona

hcoona commented Sep 11, 2026

Copy link
Copy Markdown
Owner Author

Independent GOV-011 triage by /root/discovery_finding_triage, independent of originating finder/change author /root.

ARTIFACTS-1: True positive — material source-summary omission; confidence 10/10. Assessed accepted revision 89c67730b08736d6fe430f9382d2cbefb50f6864 under the accepted research-evidence-review and record-system-review Skills. Triage completed before corrective tracked edits.

The triager independently retrieved all six cited files from official commit bca6c32fdb9611aea25819147ef4508f730aa5fb; each matched the supplied source.

  • Baseline lines 1325–1330 describe exchange without identifying it as the default branch.
  • VstsCredentialProvider.cs:165–188 returns the acquired token directly as the NuGet response password with Basic authentication under opt-in, otherwise exchanging for a session token.
  • EnvUtil.cs:58,171–173 defines ARTIFACTS_CREDENTIALPROVIDER_RETURN_ENTRA_TOKENS, default false.
  • GetAuthenticationCredentialsRequestHandler.cs:134–138 disables the session-token cache in direct mode, while MSAL caching remains available.
  • VstsSessionTokenFromBearerTokenProvider.cs:33–46 defaults to Compact/PAT after interactive acquisition and SelfDescribing otherwise. Neither universal exchange nor universal PAT interpretation is supported.
  • AzureArtifacts.cs:64–70 and MsalExtensions.cs:32–35,42–50 provide MSA passthrough/account/transfer-tenant handling; these are source capabilities, not personal-account NuGet/feed observations. The existing Git probe does not establish that downstream result.

The smallest evidence correction is to distinguish both branches, defaults, caching, and conditional PAT behavior in the existing baseline; preserve shared engine-resource scope and MSA/feed evidence limits; and clarify validation can concern direct presentation or an optional derived credential. Existing architecture/decision/Wave/Issue boundaries need consistency review rather than automatic scope expansion.

No new owner decision or experiment is required or authorized by this finding. No edits or experiments were performed by the triager. The accompanying architecture clarification records the owner's explicit PAT exclusion within existing engine/Slice scope.

@hcoona

hcoona commented Sep 11, 2026

Copy link
Copy Markdown
Owner Author

Independent review by /root/preparation_review, independent of author/implementer /root and ARTIFACTS-1 triager /root/discovery_finding_triage.

  • Accepted base: 89c67730b08736d6fe430f9382d2cbefb50f6864.
  • Exact reviewed tree: fb85e776f38fd98812323c7fe41de1cf8937c6a5.
  • Carrier: this PR and Design the WSL-to-Windows Azure DevOps authentication Slice and contracts #56.
  • Accepted research-evidence-review Skill: No material findings.
  • Accepted record-system-review Skill: No material findings.
  • Contextual architecture, requirements, security, and minimality review: No material findings. No new finding requires triage.

The reviewer independently retrieved all seven relevant official files at bca6c32fdb9611aea25819147ef4508f730aa5fb, exactly matching the reviewed sources. The reviewer also independently resolved v2.0.4 to 14855bba1b20482623697fe9497cc5398d5077cd and retrieved matching provider/EnvUtil files.

The source supports the opt-in direct Basic-password branch, default-off option, separate session-cache disablement while retaining MSAL caching, conditional Compact/PAT versus SelfDescribing selection, requested duration/cap versus actual service validity, and MSA handling without arbitrary-client eligibility inference. The three canonical consumers distinguish source capability, bounded accepted Git observation, selected engine scope, and unobserved NuGet/feed behavior. PAT exclusion stays within the accepted engine/Slice boundary and owner direction; no adapter or exchange fallback is selected.

The reviewer inspected the independent pre-edit ARTIFACTS-1 triage and confirmed the correction addresses that omission. All seven rechecks were evaluated: no new typed decision/workstream trigger, Wave transition, release, Profile selection, cache-policy change, or runtime/support claim; accepted dated dispositions remain applicable. No native TMT role/flow or record-family change occurs.

Review performed only repository and public-source reads, without subject execution, account/cache/resource access, or experiments. Normal hk and GitHub CI are separate mechanical gates.

@hcoona
hcoona merged commit b018896 into main-v2 Sep 11, 2026
1 check 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.

1 participant