Skip to content

Tools Plugins

Ryan James edited this page Aug 17, 2026 · 2 revisions

Plugins tools

This page is generated from the code by scripts/gen_wiki_tools.py — do not edit by hand.

33 tools · category token plugins · enable with DATAVERSE_TOOLS=plugins (unset enables every category)

Tool-Index · Home

Write tools additionally require DATAVERSE_ALLOW_WRITE=true; delete tools require DATAVERSE_ALLOW_DELETE=true.


dataverse_create_plugin_assembly

Write · non-idempotent · category plugins

Upload a new plug-in assembly from base64-encoded DLL bytes.

First step of the prerequisite chain: assembly (or package) → plug-in type → processing step → step image. The assembly must be strong-name signed. isolation_mode=2 (Sandbox) is required for Dataverse online. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
name str yes Assembly name, typically the DLL base name e.g. 'MyOrg.Plugins' (min_len=1)
content str yes Base64-encoded bytes of the strong-name-signed assembly DLL (min_len=1)
isolation_mode int no 2 1=None (full trust; not supported online), 2=Sandbox (default/recommended), 3=External
version str | None no None Assembly version e.g. '1.0.0.0'. Derived from content if omitted.
culture str | None no None Culture e.g. 'neutral'
public_key_token str | None no None Public key token from the strong-name key
description str | None no None Optional description for the assembly

Returns {"created": ..., "name": ..., "isolation_mode": ..., "location": ...}. Errors return {"error": true, "message": "..."}.


dataverse_create_plugin_package

Write · non-idempotent · category plugins

Upload a new NuGet-based plug-in package from base64-encoded .nupkg bytes.

Dataverse extracts the contained plug-in assemblies automatically on create. Use as an alternative first step to dataverse_create_plugin_assembly when deploying NuGet-packaged plug-ins. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
name str yes Display name for the plug-in package (min_len=1)
unique_name str yes Publisher-prefixed unique name e.g. 'yourprefix_MyPackage' (min_len=1)
content str yes Base64-encoded bytes of the .nupkg file (min_len=1)
version str yes Package version e.g. '1.0.0' (min_len=1)

Returns {"created": ..., "unique_name": ..., "location": ...}. Errors return {"error": true, "message": "..."}.


dataverse_create_plugin_step

Write · non-idempotent · category plugins

Register a processing step that runs a plug-in type on an SDK message.

Prerequisite chain: create assembly (or package) → plug-in type → this step → step image. Resolve message_id with dataverse_get_sdk_message and the optional entity-scoping filter_id with dataverse_get_sdk_message_filter. See the stage and mode fields for valid values. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
name str yes Step name e.g. 'MyOrg.Plugins.ContactPlugin: Create of contact' (min_len=1)
plugin_type_id str yes GUID of the plugintype handling this step
message_id str yes GUID of the sdkmessage; resolve via dataverse_get_sdk_message
filter_id str | None no None GUID of the sdkmessagefilter to scope to one entity; omit to register against all entities
stage int yes Pipeline stage: 10 = pre-validation (outside the DB transaction), 20 = pre-operation (inside the DB transaction, before the main op), 40 = post-operation (after the main op). Not mutable after registration.
mode int yes Execution mode: 0 = synchronous (runs in the caller's transaction), 1 = asynchronous (runs in a background System Job). Not mutable after registration.
rank int no 1 Execution order within the stage (lower runs first) (ge=1)
filtering_attributes str | None no None Comma-separated logical names; step fires only when one of these attributes changes. Use for Update steps only.
supported_deployment int no 0 0=Server Only, 1=Outlook Client Only, 2=Both
async_auto_delete bool no False When True, automatically deletes completed async operations. Only relevant for asynchronous steps (mode=1).
configuration str | None no None Unsecure configuration string passed to the plug-in constructor
description str | None no None Optional step description

Returns {"created": ..., "name": ..., "stage": ..., "mode": ..., "location": ...}. Errors return {"error": true, "message": "..."}.


dataverse_create_plugin_step_image

Write · non-idempotent · category plugins

Register a pre/post entity image on a processing step.

Final step in the chain: assembly → type → step → image. PostImage (image_type=1) is only valid for post-operation (stage=40) steps. entity_alias is the property-bag key used in plug-in code (e.g. 'PreImage'). Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
step_id str yes GUID of the parent sdkmessageprocessingstep record
image_type int yes 0=PreImage, 1=PostImage, 2=Both
entity_alias str yes Key used to access the image in the plug-in property bag e.g. 'PreImage' (min_len=1)
message_property_name str yes Request message property the image is taken from, e.g. 'Target' for Create/Update (min_len=1)
name str | None no None Image name; defaults to entity_alias if omitted
attributes str | None no None Comma-separated logical names to include in the image; omit for all attributes
description str | None no None Optional image description

Returns {"created": ..., "entity_alias": ..., "image_type": ..., "location": ...}. Errors return {"error": true, "message": "..."}.


dataverse_create_plugin_type

Write · non-idempotent · category plugins

Register a plug-in type (a .NET class) against an existing assembly.

Second step of the prerequisite chain: assembly → type → step → image. Supply the fully-qualified .NET class name as typename (e.g. 'MyOrg.Plugins.ContactPlugin'). Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
assembly_id str yes GUID of the parent pluginassembly record
typename str yes Fully-qualified .NET type name e.g. 'MyOrg.Plugins.ContactPlugin' (min_len=1)
friendly_name str | None no None User-friendly name; defaults to typename if omitted
name str | None no None Display name; defaults to typename if omitted
is_workflow_activity bool no False Whether this type is a custom workflow activity
workflow_activity_group_name str | None no None Group name; only relevant for custom workflow activities

Returns {"created": ..., "typename": ..., "location": ...}. Errors return {"error": true, "message": "..."}.


dataverse_delete_plugin_assembly

Delete · non-idempotent · category plugins

Permanently delete a plug-in assembly record — this action cannot be undone.

Fails while dependent plug-in types or steps exist. Delete in leaf-to-root order: step images → steps → types → assembly. Requires DATAVERSE_ALLOW_DELETE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
assembly_id str yes GUID of the pluginassembly record to delete

Returns {"deleted": ..., "assembly_id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_delete_plugin_package

Delete · non-idempotent · category plugins

Permanently delete a plug-in package and its extracted assemblies, types, and steps.

This action cannot be undone and cascades to all dependent records. Requires DATAVERSE_ALLOW_DELETE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
package_id str yes GUID of the pluginpackage record to delete

Returns {"deleted": ..., "package_id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_delete_plugin_step

Delete · non-idempotent · category plugins

Permanently delete an SDK message processing step — this action cannot be undone.

Delete step images first. To temporarily deactivate a step without deleting it, use dataverse_update_plugin_step with state='disabled'. Requires DATAVERSE_ALLOW_DELETE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
step_id str yes GUID of the sdkmessageprocessingstep record to delete

Returns {"deleted": ..., "step_id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_delete_plugin_step_image

Delete · non-idempotent · category plugins

Permanently delete a plug-in step image — this action cannot be undone.

Requires DATAVERSE_ALLOW_DELETE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
image_id str yes GUID of the sdkmessageprocessingstepimage record to delete

Returns {"deleted": ..., "image_id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_delete_plugin_type

Delete · non-idempotent · category plugins

Permanently delete a plug-in type record — this action cannot be undone.

Fails while dependent processing steps exist. Delete step images and steps first. Requires DATAVERSE_ALLOW_DELETE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
plugin_type_id str yes GUID of the plugintype record to delete

Returns {"deleted": ..., "plugin_type_id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_get_plugin_assembly

Read · idempotent · category plugins

Retrieve a single plug-in assembly record by its GUID.

The 'content' column contains the base64-encoded DLL and is very large — exclude it from select unless you specifically need it.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
assembly_id str yes GUID of the pluginassembly record to retrieve
select list[str] | None no None Columns to return. Defaults to pluginassemblyid, name, version, culture, publickeytoken, isolationmode, sourcetype, description, _packageid_value. Omit 'content' (base64 DLL) unless needed — it is large.

Returns {"record": ...}. Errors return {"error": true, "message": "..."}.


dataverse_get_plugin_package

Read · idempotent · category plugins

Retrieve a single plug-in package record by its GUID.

Packages are an alternative to raw assemblies — Dataverse extracts the contained assemblies automatically on upload.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
package_id str yes GUID of the pluginpackage record to retrieve
select list[str] | None no None Columns to return. Defaults to pluginpackageid, name, uniquename, version. Omit 'content' unless needed.

Returns {"record": ...}. Errors return {"error": true, "message": "..."}.


dataverse_get_plugin_step

Read · idempotent · category plugins

Retrieve a single SDK message processing step record by its GUID.

Steps are the third node in the prerequisite chain: assembly → type → step → image.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
step_id str yes GUID of the sdkmessageprocessingstep record to retrieve
select list[str] | None no None Columns to return. Defaults to sdkmessageprocessingstepid, name, stage, mode, rank, filteringattributes, statecode, _sdkmessageid_value, _sdkmessagefilterid_value, _eventhandler_value, description.

Returns {"record": ...}. Errors return {"error": true, "message": "..."}.


dataverse_get_plugin_step_image

Read · idempotent · category plugins

Retrieve a single plug-in step image record by its GUID.

Step images are pre/post entity snapshots passed to the plug-in context. They are the leaf node in the chain: assembly → type → step → image.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
image_id str yes GUID of the sdkmessageprocessingstepimage record to retrieve
select list[str] | None no None Columns to return. Defaults to sdkmessageprocessingstepimageid, name, imagetype, entityalias, messagepropertyname, attributes, _sdkmessageprocessingstepid_value.

Returns {"record": ...}. Errors return {"error": true, "message": "..."}.


dataverse_get_plugin_trace_log_setting

Read · idempotent · category plugins

Get the current plug-in trace log setting for the Dataverse organization.

Returns the verbosity level: off (0), exception (1), or all (2).

This setting controls whether Dataverse records plug-in execution traces in the plugintracelog entity. Use dataverse_set_plugin_trace_log_setting to change the setting, and dataverse_list_plugin_trace_logs to read the logs.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').

Returns {"organization_id": ..., "plugin_trace_log_setting": ..., "plugin_trace_log_setting_label": ...}. Errors return {"error": true, "message": "..."}.


dataverse_get_plugin_type

Read · idempotent · category plugins

Retrieve a single plug-in type record by its GUID.

Plug-in types represent individual .NET classes within an assembly. Use dataverse_list_plugin_types to browse types in a given assembly.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
plugin_type_id str yes GUID of the plugintype record to retrieve
select list[str] | None no None Columns to return. Defaults to plugintypeid, typename, friendlyname, name, assemblyname, isworkflowactivity, _pluginassemblyid_value.

Returns {"record": ...}. Errors return {"error": true, "message": "..."}.


dataverse_get_sdk_message

Read · idempotent · category plugins

Resolve an SDK message (e.g. 'Create', 'Update', 'Delete') to its sdkmessageid.

Call this to get the message_id required by dataverse_create_plugin_step. Provide message_name OR message_id — exactly one required.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
message_name str | None no None Message name e.g. 'Create', 'Update', 'Delete'. Provide this OR message_id.
message_id str | None no None GUID of the sdkmessage record. Provide this OR message_name.

Returns {"record": ...}. Errors return {"error": true, "message": "..."}.


dataverse_get_sdk_message_filter

Read · idempotent · category plugins

Resolve the filter that scopes an SDK message to one entity — returns the sdkmessagefilterid.

Call this to get the filter_id required by dataverse_create_plugin_step when you want to scope a step to a specific entity (e.g. 'contact'). Provide filter_id alone, or message_id + primary_entity together.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
filter_id str | None no None GUID of the sdkmessagefilter record. Provide this alone OR provide message_id + primary_entity.
message_id str | None no None GUID of the sdkmessage to scope the lookup. Required when using message+entity mode.
primary_entity str | None no None Lowercase logical name of the primary entity e.g. 'contact'. Required when using message+entity mode.

Returns {"record": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_plugin_assemblies

Read · idempotent · category plugins

List plug-in assemblies registered in the environment, optionally filtered.

Results ordered newest-modified first. Use package_id to scope to one plug-in package. The prerequisite chain is: assembly (or package) → plug-in type → processing step → step image.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
name_contains str | None no None Substring filter on assembly name (OData contains)
package_id str | None no None GUID of a pluginpackage; return only assemblies in that package
filter str | None no None Raw OData $filter expression (escape hatch)
select list[str] | None no None Columns to return. Defaults to the standard assembly projection.
top int no 50 Maximum number of records to return (ge=1, le=5000)

Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_plugin_packages

Read · idempotent · category plugins

List NuGet-based plug-in packages registered in the environment.

Results ordered newest-modified first. Packages are an alternative to raw assemblies as the first step in the prerequisite chain.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
name_contains str | None no None Substring filter on package name
filter str | None no None Raw OData $filter expression
select list[str] | None no None Columns to return. Defaults to the standard package projection.
top int no 50 Maximum number of records to return (ge=1, le=5000)

Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_plugin_step_images

Read · idempotent · category plugins

List plug-in step images (pre/post entity snapshots) registered against steps.

Use step_id to scope to one processing step.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
step_id str | None no None GUID of a sdkmessageprocessingstep; return images for that step only
filter str | None no None Raw OData $filter expression
select list[str] | None no None Columns to return. Defaults to the standard image projection.
top int no 50 Maximum number of records to return (ge=1, le=5000)

Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_plugin_steps

Read · idempotent · category plugins

List SDK message processing steps registered in the environment.

Use plugin_type_id to scope to one plug-in type, or message_id to scope to one message. Results ordered by name ascending.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
plugin_type_id str | None no None GUID of a plugintype; return only steps handled by that type
message_id str | None no None GUID of a sdkmessage; return only steps for that message
filter str | None no None Raw OData $filter expression
select list[str] | None no None Columns to return. Defaults to the standard step projection.
top int no 50 Maximum number of records to return (ge=1, le=5000)

Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_plugin_trace_logs

Read · idempotent · category plugins

List plug-in trace log records with optional filters.

Returns trace and exception information generated by plug-ins and custom workflow activities. Records are ordered newest-first.

Useful filters:

  • type_name: partial match on the plug-in class name (typename)
  • exceptions_only: true to show only failed executions
  • hours_ago: narrow to recent logs (e.g. 1 for the last hour)
  • message_name: filter by triggering message (e.g. 'Create', 'Update')
  • primary_entity: filter by entity the plug-in ran against

Plug-in trace logging must be enabled via dataverse_set_plugin_trace_log_setting before logs will be generated. Use dataverse_get_plugin_trace_log_setting to check the current setting.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
type_name str | None no None Filter by plug-in class name (typename). Supports partial match; e.g. 'MyPlugin' matches 'Acme.MyPlugin'. (max_len=1024)
message_name str | None no None Filter by the Dataverse message that triggered the plug-in (e.g., 'Create', 'Update', 'Delete'). (max_len=1024)
primary_entity str | None no None Filter by the primary entity logical name the plug-in ran against (e.g., 'account', 'contact'). (max_len=1000)
operation_type int | None no None Filter by operation type: 0 = Unknown, 1 = Plug-in, 2 = Workflow Activity. Omit to include all types. (ge=0, le=2)
exceptions_only bool no False When true, return only records where exceptiondetails is populated.
hours_ago int | None no None Limit results to logs created within the last N hours. Omit to return logs regardless of age. (ge=1, le=720)
top int no 50 Maximum number of records to return. (ge=1, le=5000)

Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_plugin_type_statistics

Read · idempotent · category plugins

List runtime performance statistics for Dataverse plug-in types.

Returns execution counts, failure rates, crash metrics, and worker-process termination contribution percentages per plug-in type. Records are populated by Dataverse within 30–60 minutes of plug-in execution; all fields are read-only.

Filter to a specific plug-in type with plugin_type_id, or omit to return statistics for all plug-in types. Set include_plugin_type_details=true to expand each row with the plug-in type name, typename, and assemblyname.

Use this to identify slow, high-failure, or crash-prone plug-ins before investigating further with the Power Platform Admin Center analytics dashboard.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
plugin_type_id str | None no None GUID of the plug-in type to filter by (e.g. 'a1b2c3d4-0000-0000-0000-000000000000'). Omit to return statistics for all plug-in types. (min_len=36, max_len=36)
top int no 50 Maximum number of records to return. (ge=1, le=5000)
include_plugin_type_details bool no False When true, expands the plugintypeid lookup to include the plug-in type name, typename, and assemblyname.

Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_plugin_types

Read · idempotent · category plugins

List plug-in types (.NET classes) registered in the environment.

Use assembly_id to scope to one assembly. Results ordered by typename ascending. Types are the second step in the prerequisite chain: assembly → type → step → image.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
assembly_id str | None no None GUID of a pluginassembly; return only types in that assembly
typename_contains str | None no None Substring filter on typename (fully-qualified .NET class name)
is_workflow_activity bool | None no None When True/False, filter to custom workflow activities only or exclude them
filter str | None no None Raw OData $filter expression
select list[str] | None no None Columns to return. Defaults to the standard type projection.
top int no 50 Maximum number of records to return (ge=1, le=5000)

Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_sdk_message_filters

Read · idempotent · category plugins

List SDK message filters showing which entities support each message.

Use message_id to scope to one message, or primary_entity to see all messages supported by one table. Use dataverse_get_sdk_message_filter to resolve a specific filter_id for dataverse_create_plugin_step.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
message_id str | None no None GUID of the sdkmessage; return filters for one message only
primary_entity str | None no None Lowercase logical name of the primary entity e.g. 'contact'
filter str | None no None Raw OData $filter expression
select list[str] | None no None Columns to return. Defaults to sdkmessagefilterid, primaryobjecttypecode, _sdkmessageid_value.
top int no 50 Maximum number of records to return (ge=1, le=5000)

Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_sdk_messages

Read · idempotent · category plugins

List SDK messages — the catalog of operations plug-in steps can intercept.

Use to discover valid message names (e.g. 'Create', 'Update', 'Assign') before calling dataverse_get_sdk_message to resolve message_id for a step.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
name_contains str | None no None Substring filter on message name
filter str | None no None Raw OData $filter expression
select list[str] | None no None Columns to return. Defaults to sdkmessageid, name.
top int no 50 Maximum number of records to return (ge=1, le=5000)

Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_set_plugin_trace_log_setting

Write · idempotent · category plugins

Enable or disable plug-in trace logging for the Dataverse organization.

Sets the organization-wide PluginTraceLogSetting:

  • 'off' (0): No plug-in trace logs are written.
  • 'exception' (1): Logs written only when a plug-in throws an exception.
  • 'all' (2): Logs written for every plug-in execution.

Requires DATAVERSE_ALLOW_WRITE=true on the server.

WARNING: Setting 'all' generates high log volume. Disable logging once debugging is complete to avoid excessive storage usage.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
setting str yes Trace log verbosity level: 'off' (disabled), 'exception' (log only on plug-in exceptions), or 'all' (log every plug-in execution).

Returns {"success": ..., "organization_id": ..., "plugin_trace_log_setting": ..., "plugin_trace_log_setting_label": ...}. Errors return {"error": true, "message": "..."}.


dataverse_update_plugin_assembly

Write · idempotent · category plugins

Update an existing plug-in assembly — most often to re-deploy new DLL bytes.

Re-uploading content updates the registered code in-place without changing the assembly's GUID or breaking dependent types and steps. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
assembly_id str yes GUID of the pluginassembly record to update
content str | None no None New base64-encoded DLL bytes (re-deploys the assembly code)
isolation_mode int | None no None Updated isolation mode: 1=None, 2=Sandbox, 3=External
version str | None no None Updated assembly version string
description str | None no None Updated description

Returns {"updated": ..., "assembly_id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_update_plugin_package

Write · idempotent · category plugins

Update a plug-in package — re-upload new .nupkg content or bump the version.

Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
package_id str yes GUID of the pluginpackage record to update
content str | None no None New base64-encoded .nupkg bytes
version str | None no None Updated package version string

Returns {"updated": ..., "package_id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_update_plugin_step

Write · idempotent · category plugins

Update an SDK message processing step, including enabling or disabling it.

Use state='enabled' or state='disabled' to toggle without deleting. stage, mode, and message are not mutable after registration — re-create the step to change those. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
step_id str yes GUID of the sdkmessageprocessingstep record to update
name str | None no None Updated step name
rank int | None no None Updated execution order within the stage (ge=1)
filtering_attributes str | None no None Updated comma-separated attribute filter
state str | None no None 'enabled' or 'disabled' — use to enable/disable the step without deleting
configuration str | None no None Updated unsecure configuration string
description str | None no None Updated step description

Returns {"updated": ..., "step_id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_update_plugin_step_image

Write · idempotent · category plugins

Update a plug-in step image's alias, property name, or attribute filter.

Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
image_id str yes GUID of the sdkmessageprocessingstepimage record to update
entity_alias str | None no None Updated property bag key
message_property_name str | None no None Updated request message property name
attributes str | None no None Updated comma-separated attribute list
name str | None no None Updated image name

Returns {"updated": ..., "image_id": ...}. Errors return {"error": true, "message": "..."}.


dataverse_update_plugin_type

Write · idempotent · category plugins

Update mutable display fields on a plug-in type record.

typename and assembly are not safely mutable after registration — re-create the type instead. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
plugin_type_id str yes GUID of the plugintype record to update
friendly_name str | None no None Updated user-friendly name
name str | None no None Updated display name
workflow_activity_group_name str | None no None Updated workflow activity group name

Returns {"updated": ..., "plugin_type_id": ...}. Errors return {"error": true, "message": "..."}.


Clone this wiki locally