Skip to content

[Experiment] Web service key authentication against existing PR2 API suites - #12454

Draft
Prangshuman Das (t-prda) wants to merge 25 commits into
mainfrom
features/646383-pr2-webkey-auth-experiment
Draft

Prangshuman Das (t-prda) wants to merge 25 commits into
mainfrom
features/646383-pr2-webkey-auth-experiment

Conversation

@t-prda

@t-prda Prangshuman Das (t-prda) commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Draft experiment — web-service-key provider on inherited PR2 API suites

AB#646383

Originally based on live PR2 #11860, captured head c4953dceffe02a017adad34973e1955017bf5d20, with a provider-only implementation commit 4a8355406d6d3e3bbd0ee912194218ca506300a8. Original PR2, the native stack, draft #12441 and SQL pilot #12447 remain unchanged. Do not merge this experimental draft.

Target and inherited scope

  • Targets repository default main because the feature-base run 37578205057 had no successful non-PR warning baseline. Its baseline ID was 0; warning comparison failed before downstream test execution. That deterministic failure was not retried or treated as authentication evidence.
  • Experiment-only merge 70fded9af7b71517f4acc2512f88adce9b649617 incorporates main cbbfcab9f389db1db06f17ecb8e1f719568beee1, preserving PR2 ancestry.
  • Follow-up dd37840896a95440608dbb10f7358e40e3ab8fda removes one duplicate RequiredTestIsolation property introduced by Git's automatic Company Information merge. Run 37582528418 exposed deterministic AL0317 in the RU build; no unchanged-head retry was used. Main's commented declaration and PR2 provider setup remain. The provider and exclusion manifests are unchanged.
  • Both API exclusion conflicts were reconciled by exact selector sets: preserve inherited PR2 uptake, remove only its intended historical cohort exclusions, keep 139739/TestDeleteInUse, and preserve unrelated main exclusions including 139806/TestGetCompanyAndEnvironmentDescriptions.
  • The historical cohort has 193 methods, 192 eligible and one retained exclusion. Eligibility is not an execution or pass count.
  • The displayed main-target diff includes inherited PR2 uptake, not just the provider. Of 179 ancestry-difference paths, 19 are already equivalent to main; the effective 160 paths comprise 158 unchanged inherited PR2 files, one automatic Company Information test integration, and the unchanged provider experiment. No workflow or pipeline changes are introduced by this merge.

Provider

  • Only new authentication implementation is MicrosoftTestAuthProvider.Codeunit.al; its blob remains identical to the implementation preserved in [Prototype] Use web service keys in Microsoft test authentication #12441.
  • OnPrem NavUserPassword uses public Identity Management web-service-key APIs, checks fresh last-error state, preserves valid existing keys and creates a missing key with a 24-hour expiry.
  • Windows/SaaS guards and public provider contracts remain unchanged.
  • No explicit Commit, key rotation, file/Key Vault fallback, new custom test codeunits or source-pattern tests.
  • Existing pipeline password provisioning is intentionally retained; the selected provider no longer reads it.

Evidence and limits

  • After main reconciliation: existing targeted Pester 117 passed, 0 failed, 0 skipped, using an owned project-local TestDrive. Exact manifest preservation, 192-method eligibility, unchanged provider blob, both parent ancestries and effective diff checks passed.
  • After the one-line compiler correction: the same 117 checks passed again. Runtime proof remains pending; the failed compile run is not counted as an authentication test.
  • Current PR CI run 37588964135, attempt 1, checked out merge 6b3b69d4b0cfc1eea146af2167a2ec089ca61771 containing exact head dd37840896a95440608dbb10f7358e40e3ab8fda and main cbbfcab9f389db1db06f17ecb8e1f719568beee1. Successful main CI/CD baseline 37535399988 was selected. At 2026-10-07T08:04Z country compilation was running; no TestResults artifacts or runtime authentication outcomes yet. No manual CI retry or cancellation.
  • Primary end-to-end proof is the existing PR2 API suites and inherited CU139496 OData control in disposable PR CI. Both provider and consumer test packages must compile/publish before runtime results count.
  • Runtime validation pending. Not merge-ready; no production-readiness claim.
  • Missing-key transaction visibility, concurrent lifecycle guarantees and rollback behavior remain unproven. Lifecycle tests remain preserved separately in [Prototype] Use web service keys in Microsoft test authentication #12441 and are deferred, not counted as passing.
  • Original [Prototype] Use web service keys in Microsoft test authentication #12441 SOAP fixture requests were blocked before authentication by native HttpClient Anti-SSRF; this is distinct from genuine Integration HTTP401 observations.

Retry discipline

Preserve first-attempt evidence. Only demonstrated unstable or unrelated recoverable failures may receive narrow terminal failed-job reruns after current/bot-attempt checks, bounded to two manual rounds. Deterministic authentication401, fixture defects and unclassified errors are not retry candidates. No full-workflow rerun when job selection is possible.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
The historical workflow patch relocated the original core checks. Remove that duplicate while retaining the behavioral workflow tests and downstream AL adoption metadata assertions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Remove the wrapper generator and its generator-specific tests. Keep the shared finalizer and behavioral tests that execute every project wrapper.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session:3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session:3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session:3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session:3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session:3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session:3952f078-a881-4da8-ad96-13b727e48a91
Temporarily sequence193 existing methods through DisabledTests selectors:135 APIV1 and58 APIV2. Removed in#11860; no product quarantine or selection logic.

AB#646383

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session:3952f078-a881-4da8-ad96-13b727e48a91
Remove the193 temporary Expense-stage selectors. Preserve the complete general uptake source tree exactly.

AB#646383

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session:3952f078-a881-4da8-ad96-13b727e48a91
Relocate the same193 temporary method exclusions without changing selection, authentication or tests. Preserve existing manifest order and remove separate stage files.

AB#646383

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session:3952f078-a881-4da8-ad96-13b727e48a91
Inherit Expense-first manifest relocation and restore the exact general uptake source tree. Existing general exclusions remain owned by their downstream fixes.

AB#646383

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session:3952f078-a881-4da8-ad96-13b727e48a91
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
@github-actions github-actions Bot added the Team: Integrations GitHub request for Integrations area label Oct 7, 2026
Reconcile API exclusions by the inherited PR2 uptake and exact 193-method cohort. Preserve 192 eligible methods, TestDeleteInUse, and unrelated main exclusions. Provider remains unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
@t-prda
Prangshuman Das (t-prda) changed the base branch from features/646383-api-test-uptake to main October 7, 2026 06:37
@github-actions github-actions Bot added the AL: Apps (W1) Add-on apps for W1 label Oct 7, 2026
@github-actions github-actions Bot added this to the Version 30.0 milestone Oct 7, 2026
Fix AL0317 in the existing Company Information API tests while retaining main isolation and inherited provider setup. No authentication logic or test selection changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91

This branch was successfully deployed

1 active (outdated) deployment
triage — 4a835540 Deployed Oct 7, 2026 by t-prda via Classify team ownership #6970
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AL: Apps (W1) Add-on apps for W1 Team: Integrations GitHub request for Integrations area

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant