Skip to content

0.7.0

Choose a tag to compare

@RemyDuijkeren RemyDuijkeren released this 15 Jul 23:39

Added

  • AI-native schema context: sync writes DATAVERSE_CONTEXT.md — entities, attributes, option sets, forms, views, workflows, and plugin steps extracted from solution XML. Claude Code, Copilot, and Codex load it automatically via AGENTS.md.
  • AGENTS.md scaffolding and self-healing: clone creates AGENTS.md at the repo root; sync keeps it up to date with a pointer to DATAVERSE_CONTEXT.md.
  • generate --output saved to .flowline: the output path is persisted in the project config and reused on subsequent runs.
  • Deploy orphan cleanup: deploy detects solution components removed since the last import and removes or reports them.
  • DTAP gate on deploy: deploy refuses to promote unless the source environment matches what has been synced — prevents deploying untested configuration drift.
  • Managed/unmanaged type guard on deploy: pre-flight check blocks deploying a managed solution to an unmanaged target and vice versa.
  • Sync sub-change summaries and CHANGES.md: sync drills into attribute, option set, and view column changes — full detail written to CHANGES.md after every sync.
  • XrmContext v4 generator (--generator xrmcontext): uses the xrmcontext dotnet global tool for early-bound type generation. Supports --service-context-name. Binary auto-downloaded and cached via NuGet.
  • Auth: automatic profile selection: Flowline picks the best PAC auth profile automatically (active profile preferred), shows an interactive picker when ambiguous, and warns when tokens are nearing expiry.
  • Auth: client secret resolution chain: --client-secret flag → environment variable → interactive prompt → fail.
  • --client-id and --client-secret flags on generate for service-principal auth to XrmContext.
  • Bulk operation messages: [Step] and [CustomApi] attributes now accept bulk operation messages (BulkDetect, BulkExport, etc.).
  • push --no-build: skip the npm/dotnet build and push the existing dist/ directly. Includes a mass-delete guard when dist/ is empty.
  • UAT environment: deploy uat promotes to a UAT tier alongside test and prod.
  • Web resource dependency enrichment: annotation parser and dependency diffing harden dependency registration. Annotation-referenced web resources are exempted from orphan deletion.
  • Verbatim mode: web resource folders already carrying the publisher prefix are pushed as-is, without double-prefixing.
  • Typed exit codes: Success, ConfigInvalid, AuthFailed, BuildFailed, PartialSuccess — CI pipelines and agents can distinguish failure modes.

Changed

  • Generator name xrmcontext (v3) renamed to xrmcontext3; --generator xrmcontext now targets XrmContext v4.
  • --secret renamed to --client-secret on generate.
  • Dependencies bumped: CliWrap, Spectre.Console, Microsoft.Extensions.*, Microsoft.Identity.Client.Extensions.Msal, System.Security.Cryptography.Xml.

Fixed

  • GUID-based link-entity alias prefix (a_<32hex>.fieldname) stripped from view column names in DATAVERSE_CONTEXT.md.
  • UTF-8 output encoding set explicitly — prevents logo and spinner corruption in some Windows terminals.
  • Deleted plugin step names resolved from git history when generating sync change summaries.
  • UTF-8 BOM stripped from solution XML before parsing change summaries.
  • CRLF line-ending warning suppressed during sync change summary generation.
  • Web resource dependency enrichment hardened; RESX cross-folder matching fixed.
  • XrmContext NuGet extraction path corrected — binary lands in the expected content/XrmContext/ directory.
  • XrmContext authentication uses method:OAuth for MFA-enforced tenants.
  • Orphan cleanup hardened: component ID count limit enforced, unknown components handled gracefully, PartialSuccess exit code returned on partial failure.

Security

  • CI workflows: contents: read permission scoped explicitly; GitHub Actions pinned to latest versions; GITHUB_TOKEN added to NuGet cache cleanup step.