SYSTEM 8Discuss a system ↗
DOCS / TEST-ALM-001

TEST-ALM-001 / SOURCE CONTROLLED

Dataverse ALM drift evidence pack

Use when development, test and production do not behave alike even though the expected managed solution version appears to be deployed.

● CONTROLLEDOWNER / SYSTEM 8REVIEW / MONTHLY
01

Authority and zero gate

  • Name release, product, Dataverse, integration and acceptance owners.
  • Freeze direct edits and imports for the affected components.
  • Pause or queue unsafe write processes; reconcile before replay.
  • Export/capture affected definitions, layers, values and deployment records before repair.
  • Keep credentials, tokens and secret environment values outside this pack.
  • Do not bulk-remove active layers or force overwrite without component-level approval.
02

Environment and release inventory

FIELDCAPTUREACCEPTANCE
EnvironmentName, ID, type, region, managed statusTarget identity confirmed
SolutionUnique name, publisher, managed state, versionMatches approved artifact
ArtifactBuild/run ID, checksum, source commit, retained fileSame artifact passed test
DeploymentPipeline host, stage/run, identity, time, notesHistory retained across hosts
JourneyApp, table, form, rule, flow, integrationAll dependencies enumerated
03

Component-layer evidence

COMPONENTTOP LAYEREXPECTED SOURCEDISPOSITION
Stable type + unique IDManaged/unmanaged, solution, version, publisherArtifact component/versionKeep, reproduce, remove or investigate
  • Capture each changed property with the component ID, source layer and timestamp. The presence of an active layer alone is incomplete.
  • Check later managed solutions, patches/upgrades and shared-component ownership.
  • Classify fallback-form and other platform-created layers separately from direct edits.
  • Preserve the active definition before approved removal.
04

Target-configuration inventory

TYPECAPTURENEGATIVE CHECK
Environment variableSchema name, type, default/current value state, consumer, ownerOld endpoint/value is not resolved
Connection referenceSchema name, connector, bound connection, consumersNo stale or unintended binding
ConnectionOwner/service principal, sharing, auth healthFormer maker cannot be required
Configuration dataTable/key, source, count/hash, migration routeMissing/duplicate rows detected
SecurityRoles, teams, app access, row ownershipProhibited persona remains denied
05

Drift classification and decision record

  1. Describe the observed behavior and operational consequence.
  2. Link each observation to artifact, layer, target binding, data/security or unknown.
  3. Record competing explanations and the evidence that excludes each one.
  4. Classify changes as authorised hotfix, accidental edit, platform-generated layer, release defect, target-configuration mismatch, missing data/security or accepted difference.
  5. Name the repair source, approver, rollback and expiry for every retained difference.
06

Controlled repair sequence

  1. Reproduce the accepted intent in the development source.
  2. Review dependencies, solution overlap and publisher ownership.
  3. Run Solution Checker and component tests; record their limits.
  4. Build, checksum, retain and promote one versioned managed artifact.
  5. Supply approved environment values and connection bindings.
  6. Migrate/reconcile required configuration rows through a separate controlled path.
  7. After proving replacement, remove only the attributed active layer.
  8. Publish as required and rerun the full acceptance matrix.
07

Positive and negative acceptance matrix

TESTEXPECTEDEVIDENCE
Primary business journeyExpected rule and outcomePersona, record, timestamp
Exception/rejectionControlled failure; no hidden side effectRun and target record
Old endpoint/valueNever selectedResolved configuration/log
Former connection ownerNot requiredConnection/reference inventory
Duplicate/retryOne authoritative outcomeBusiness key reconciliation
Prohibited personaRead/update deniedNegative access result
Fresh sessionSame behavior after publish/cacheNew-session result
Layer reinspectionExpected component is effectivePost-release layer capture
08

Release evidence and operating cadence

Retain the source commit, exact artifact and checksum; checker results; component/dependency manifest; layer captures; environment-value and connection-binding manifest; controlled configuration-data result; deployment run; positive/negative tests; approval; rollback; residual differences and expiry. Redact personal data and secrets.

  • Every release: pre/post layer and binding comparison for changed high-risk components.
  • Monthly: connection health, owner/service-principal and failed deployment review.
  • Quarterly: broader target drift, solution overlap and exception review.
  • After emergency change: back-port, managed release, layer closure and evidence review.
09

Limits

This pack covers the sampled components, business rules, security paths and configuration records listed in the capture register. Untested components and Dataverse data rows remain outside the result. Solution Checker is static analysis and does not know all target state. A managed deployment does not include ordinary Dataverse table data. Blocking unmanaged customisations can reduce future drift only after current exceptions are reconciled. Third-party comparison or removal tools require separate security review, backup and component-level authority.