Activity SDK reference
Namespaces, attributes, capabilities, MSBuild properties, and every build, package and compile diagnostic an activity package author can meet.
Namespaces# Namespace Contains Velophex.Workflow.Activities Base classes (CodeActivity, AsyncCodeActivity, DurableActivity, ContainerActivity, CompositeActivity and the <TResult> variants), ActivityBookmarkOptions, [ActivitySlot] Velophex.Workflow.Activities.Arguments InArgument<T>, OutArgument<T>, InOutArgument<T> Velophex.Workflow.Activities.Context ActivityContext, CodeActivityContext, AsyncCodeActivityContext, DurableActivityContext Velophex.Workflow.Activities.Metadata [ActivityType], [ActivityInfo], [ActivityCapabilities], [ActivityCharacteristics], [ActivityRecovery], [ActivityValidator], [ArgumentInfo], [RequiredArgument], [RequiredWhen], [MutuallyExclusive], [Advice], [DependentChoices], [ActivityExample], ActivityRisk, IActivityValidator Velophex.Workflow.Activities.Design PropertyPlacement, PropertyValueModes, ActivityCardType, ValidationSeverity, EditorKeys, ActivityDesign<T> Velophex.Workflow.Activities.Scopes [ScopeProvider], [RequiresScope], ScopeFallback, ScopeFrame, IAmbientScopes, IRunResources Velophex.Workflow.Activities.Services IActivityLogger, SecretValue, IWorkflowServiceContributor, [WorkflowServiceContributor] Velophex.Workflow.Activities.Recovery IActivityRecoveryProbe, ActivityRecoveryProbeResult Velophex.Workflow.Activities.Testing ActivityTestHost, ActivityTestResult Velophex.Workflow BusinessRuleException, ActivityRecoveryBehavior Velophex.Workflow.Execution WorkflowFaultException, WorkflowFaultCategory Velophex.Workflow.Security SecretHandle Velophex.Studio.Sdk.Catalog (design time) [assembly: DesignCatalog], Editors, Groups Velophex.Studio.Sdk.Data (design time) IDesignDataSource, IActivityDesignDataProvider, DesignChoice, DesignDataRequest, DesignDataUnavailableException, DesignDataFailure Velophex.Studio.Sdk.Editing (design time, net10.0-windows) IDesignExtensionProvider, IPropertyEditorProvider, ICardContentProvider Attributes# Attribute On Purpose [ActivityType("prefix.name")] Class The permanent type id. Required. [ActivityInfo(...)] Class DisplayName, Category, Subcategory, Description, IconKey, Keywords, Aliases, HelpUri, Version, DefaultDisplayName, Hidden, CardType [ActivityCapabilities(...)] Class The capabilities the activity needs (below) [ActivityCharacteristics(...)] Class Idempotent, RetrySafe, Deterministic, Persistable, RequiresIsolation, Privileged, SessionAffinity, Risk [ActivityRecovery(behavior)] Class ReplaySafe, ProbeThenReplay or NonReplayable (default) after a crash [ActivityValidator(typeof(T))] Class A compile-time IActivityValidator [MutuallyExclusive("A", "B")] Class At most one of the arguments may be bound [ActivityExample("Title")] Class A documented example (Description, Snippet) for the generated reference page [ActivitySlot("Name")] Class A child slot of a ContainerActivity (DisplayName) [ScopeProvider(Kind, CloseActivity, ...)] Class Marks a scope's open step (Display, CompleteActivity, Shareable) [RequiresScope(Kind, ...)] Class The activity needs an enclosing scope (Argument, Fallback) [ArgumentInfo(...)] Property DisplayName, Description, Placeholder, Order, Group, IsAdvanced, Placement, EditorHint, DefaultValue, Choices, VisibleWhen, EnabledWhen, Sensitive, ValueModes, DataSource, DataSourceDependsOn [RequiredArgument] Property Must be bound [RequiredWhen("A=x")] Property Must be bound while the condition holds [DependentChoices("A=x", ...)] Property Choices offered while the condition holds [Advice("A=x", "message")] Property A non-blocking hint (Severity Info or Warning) [Range], [RegularExpression], [MinLength], [MaxLength] Property Standard System.ComponentModel.DataAnnotations rules, checked on literals at design time [assembly: WorkflowServiceContributor(typeof(T))] Assembly Registers run services for your activities [assembly: DesignCatalog(typeof(T))] Design assembly The one type Studio constructs from a design assembly Capabilities# Declare every capability an activity uses with [ActivityCapabilities(ActivityCapabilities.X | ActivityCapabilities.Y)]. The package declares their union. Studio shows them when the package is installed, and warns explicitly when an unsigned package asks for UiAutomation or Credentials. Capability Declare it when the activity FileSystem Reads or writes files or folders Network Makes network calls Browser Drives a web browser Process Starts or controls processes Credentials Handles credentials or secrets, including GetSecretAsync and ProtectSecret UiAutomation Drives desktop or web user interfaces Capabilities are a consent signal, not a sandbox. MSBuild properties# Set these in the package project unless noted. Property or item Default Effect VelophexTypeIdPrefix (in Directory.Build.props) The template's --prefix Your type id prefix; the build refuses velophex and velophex.* VelophexWorkflowSdkVersion, VelophexStudioSdkVersion, VelophexActivityPackageBuildVersion, VelophexEngineVersionRange (in VeloPhex.Versions.props) The template's release The SDK versions and the engine range written to the manifest. Change them together. PackageReleaseNotes $(Version): First release. Must start with the version being packed PackageLicenseFile with VeloPhexLicenseSource, or PackageLicenseExpression LICENSE.txt The licence; one is required IsVelophexActivityPackage true false for a package that deliberately ships no activities (a library); it then must not declare any ActivityPackageIconDir icons beside the runtime project Where icons come from. Required when the package has more than one lib member. ActivityPackageResourceDir resources beside the runtime project Where <culture>.json translations come from ActivityPackageLogo Empty A shared package.svg that replaces icons/package.svg ActivityPackageIconAlias items (IconName metadata) None Ship one SVG file under another icon name ActivityPackageContent items (PackagePath metadata ending in /) None Extra files to pack; they are listed and hashed in the manifest VelophexActivityHelpBaseUri Empty Help link for activities without their own HelpUri: the base, /, then the type id VelophexDesignProbeDir items The package project's output folder Where a fluent design's dependencies are resolved from while packing VelophexRunDesignAssemblies true false writes the design document from attributes only, without running fluent designs VelophexWriteLocalizationTemplate false true writes resources/invariant.json with every translatable key VelophexActivityDocsDir Empty Writes a Markdown reference page, <dir>\<PackageId>.md Project references from the package project use two metadata values: PrivateAssets="all" and PackageFolder="lib" (runtime assembly) or PackageFolder="design" (Studio design assembly). Build diagnostics# Reported by dotnet pack as <package id>: error <code>: <detail> Fix: <fix>. Studio's Output panel reports the design codes it meets under the same codes. Code Severity Problem VXMAN001 Error An activity's metadata could not be read: a non-assembly file in lib/, a base class outside the SDK or your assembly, or an argument type that is not InArgument<T>, OutArgument<T> or InOutArgument<T> VXMAN002 Error The package declares no activities, so it would install and show nothing VXMAN003 Error A package marked as a library (IsVelophexActivityPackage=false) declares activities VXMAN004 Error A file in icons/ is not an .svg VXMAN005 Error An icon is larger than 16 KiB VXMAN006 Error The icons together are larger than 256 KiB VXMAN007 Error No package icon (icons/package.svg) VXMAN008 Error An activity has no icon key, or the package ships no icons/<key>.svg for it VXMAN009 Error No lib/ assembly; reference the runtime project with PackageFolder="lib" VXMAN010 Error The package states no licence VXMAN011 Error PackageLicenseFile is set but VeloPhexLicenseSource does not point at the file VXMAN012 Error No release notes VXMAN013 Error The release notes do not start with the version being packed VXMAN020 Warning Choices declared the old way, EditorHint = "choice:a|b"; use Choices VXPKG051 Error An activity declares an argument or property named Timeout or ContinueOnError VXDSN000 Info Summary: activities, card properties, conditions, warnings VXDSN001 Error The design document does not read back identically; the build tool and SDK are from different releases VXDSN002 Error The design document's schema is newer than the reader; align the build tool with the SDK (in Studio: update Studio) VXDSN003 Error A fluent design describes an activity the package does not declare VXDSN004 Error A design names a property that is not an argument of the activity VXDSN005 Error or warning An EditorHint that is not an EditorKeys key (a warning when the package ships a design assembly) VXDSN006 Error A condition is not Argument=Value / Argument!=Value, names a missing argument or itself, uses a value outside the driver's choices, or forms a cycle VXDSN007 Warning A DataSource key no data provider in the design assembly serves VXDSN008 Error A [RegularExpression] pattern does not compile VXDSN009 Warning or error A translation key no activity owns (warning), or a translation file that is not a flat JSON object named after a culture (error) VXDSN010 Error Two fluent designs for the same activity VXDSN011 Error A fluent design threw while packing VXDSN012 Error A container declared on an activity that is neither a scope's open step nor a ContainerActivity VXDSN013 Warning More than two card properties on one activity VXDSN014 Error A fluent design needs an assembly that could not be found; add a VelophexDesignProbeDir VXDSN015 Error An [Advice] with Severity = Error; advice is Info or Warning only VXDSN016 Error An attribute value that cannot be read from metadata, such as the [Range(Type, string, string)] overload VXDSN017 Error The runtime project uses a newer SDK than the build tool; update VeloPhex.ActivityPackage.Build VXDSN018 Error An ActivityDesign<T> inside a design assembly; move it to the runtime project VXDSN019 Warning Studio could not read the design document (the package was altered after packing) VXDSN020 Warning A design value over a limit: 256 characters per display string, 200 choices, 32 keywords or aliases, 8 examples of 4 KiB, http/https help links only Package diagnostics# Reported by Studio, the workflow executor and the Robot while they read, verify, restore and load packages. Code Problem VXPKG001 The archive is not a readable ZIP file VXPKG002 An entry path is rooted, traverses upwards or is otherwise unsafe VXPKG003 Two entries map to the same file VXPKG004 An entry exceeds the per-entry size limit VXPKG005 The archive exceeds the total size limit VXPKG006 An entry or the archive exceeds the compression-ratio limit VXPKG007 An entry is a symbolic link or reparse point VXPKG008 The archive has too many entries VXPKG009 An entry is encrypted VXPKG010 The package has no manifest VXPKG011 The manifest is not valid JSON of the expected shape VXPKG012 The manifest format or version is not supported VXPKG013 The package id is not a valid NuGet id VXPKG014 A version is not a valid semantic version VXPKG015 The engine version range is missing or malformed VXPKG016 The running engine is outside the package's engine version range VXPKG017 An entry point is missing, duplicated or refers to an unknown workflow VXPKG018 A public argument of an entry point is malformed VXPKG019 A dependency lock is a range or floating version instead of an exact version VXPKG020 A dependency lock is malformed or duplicated VXPKG021 A file entry in the manifest is malformed or duplicated VXPKG022 A file listed in the manifest is missing from the package VXPKG023 A file's size or SHA-512 differs from the manifest VXPKG024 The package contains a file the manifest does not list VXPKG025 A declared capability is unknown VXPKG026 A declared activity is malformed or duplicated VXPKG027 A runtime assembly, icon or translation entry refers to an unknown file VXPKG028 The manifest is too large VXPKG029 An activity requires a capability the package does not declare VXPKG030 A package's SHA-512 differs from its lock entry VXPKG031 A locked package was not found on any package source VXPKG032 No package source is mapped for the package id VXPKG033 Dependency version requirements cannot be satisfied together VXPKG034 A package depends on a package that is not in the lock file VXPKG035 The package's own identity differs from the requested one VXPKG036 The lock file is malformed or its digest does not match its content VXPKG037 A cache entry failed verification and was discarded VXPKG038 The .nuspec is missing or unreadable VXPKG039 A package source is misconfigured VXPKG040 The package was refused by the trust policy before loading VXPKG041 Two packages declare the same activity type id VXPKG042 Package code requested an assembly outside the package's dependency closure VXPKG043 A package notice (deprecation or vulnerability) was reported VXPKG044 An icon is not an .svg VXPKG045 An icon exceeds 16 KiB VXPKG046 The package's icons together exceed 256 KiB VXPKG047 A package download exceeded the maximum package size VXPKG048 The package cache could not be read or written VXPKG049 A file that looks like a credential file was left out of an automation package (warning) VXPKG050 An activity's scope declaration is malformed VXPKG051 An activity declares Timeout or ContinueOnError VXPKG052 A workflow library has no entry point VXPKG053 The design document could not be read; the activities keep the design from their attributes (warning) VXPKG054 No engine version satisfies the ranges of every activity package a project uses Compile diagnostics# Reported in Studio's Error List and by the workflow compiler for workflows that use your activities. Code Problem VWF1301 Unknown activity type: the package is missing or the type id changed VWF1302 A required argument is not bound VWF1303 The workflow binds an argument the activity does not declare VWF1304 A binding has the wrong direction VWF1307 Your IActivityValidator reported a problem, or threw VWF1308 A composite activity could not be expanded VWF1309 A composite activity recursed or nested too deeply VWF1310 An activity needs an enclosing scope that is not there and its override argument is not bound VWF1316 Concurrent branches use one single-owner scope VWF1317 A literal is outside a [Range], [MinLength] or [MaxLength] VWF1318 A literal does not match a [RegularExpression] VWF1319 An argument is unbound while its [RequiredWhen] condition holds VWF1320 More than one argument of a [MutuallyExclusive] set is bound VWF1323 A literal is bound to an argument that does not accept literals, such as a sensitive one VWF1324 An input is bound while its VisibleWhen condition is false (warning) VWF1325 An [Advice] condition holds (information or warning) VWF1326 A SecureString is read after a persistence point (warning) VWF1327 A child is in a slot the activity does not declare, or a container activity has a retry policy VWF1328 A persistence point is inside an activity that declares Persistable = false VWF1329 A variable or argument of a live-resource type can hold a value at a persistence point VWF1330 A container activity declares RequiresIsolation = true
Namespaces
Attributes
Capabilities
MSBuild properties
Build diagnostics
Package diagnostics
Compile diagnostics