Skip to content

Attributes

XrmGhost.Attributes is the shared metadata package used to describe Dataverse plugin behavior with .NET attributes instead of handwritten registration or scenario scaffolding metadata.

These docs are for engineers who want to understand what the package is for, how to apply it to plugin classes, and where the current narrative guidance stops.

  • Declares plugin execution context on a class with repeatable .NET attributes
  • Captures message, entity, image, parameter, configuration, and solution metadata in code
  • Gives reflection-based tools a stable surface to inspect without parsing plugin logic
  • Supplies the metadata used by other XrmGhost components such as the CLI scenario generator and the framework host
  • Plugin authors who want a declarative way to describe Dataverse execution context
  • Teams using xrmghost-cli generate-scenario to seed scenario files from plugin metadata
  • Engineers building tooling or tests that read plugin attributes via reflection

Today the package exposes class-level attributes for these jobs:

  • Execution registration via PluginExecutionConfigAttribute and HandlesMessageAttribute
  • Scenario seed data via InputParameterAttribute, OutputParameterAttribute, and SharedVariableAttribute
  • Entity image metadata via PreImageAttribute and PostImageAttribute
  • Configuration defaults via SecureConfigurationAttribute and UnsecureConfigurationAttribute
  • Registration grouping via SolutionComponentAttribute

The package itself is intentionally small: it defines attribute classes and lightweight constructor/property validation, then leaves richer behavior to consumers that read the metadata.

SectionDescription
Getting StartedLearn the core concepts, see a concrete plugin example, and understand the current validation boundary.
Manual Attribute ReferenceBrowse one manual reference page per current public attribute while generated exports do not yet exist.
Future schema referenceThe generated reference is still planned separately once the schema pipeline exists.

Narrative Docs vs. Future Generated Reference

Section titled “Narrative Docs vs. Future Generated Reference”

This section is intentionally narrative first. It explains how the package fits into XrmGhost and how to use it safely without pretending that exhaustive generated reference pages already exist.

The current public contract in xrmghost-attributes is the source of truth. The new manual attribute reference is authored by hand from that contract today, and it can later be replaced or supplemented by generated output when the schema pipeline exists.

When generated reference content becomes available, docs/attributes/schema/ remains the planned location for exhaustive schema-level detail. Until then, these pages focus on package purpose, usage shape, and the limits of what is public today.

The Attributes documentation is owned by the Attributes team in collaboration with Documentation. For the full ownership map see Content Ownership.