Skip to main content

Class ArtifactMetadata

Represents metadata information for an artifact produced by a routine execution.

Namespace: Workspace.XBR.Xperiflow.Routines.Artifacts

Assembly: Xperiflow.dll

Declaration
public class ArtifactMetadata

Examples

Working with artifact metadata:

// Get metadata for an artifact
var metadata = client.GetByQualifiedKeyAsync("instance-123", "run-456", "output.dataframe").Result;

// Check if it's an aggregate artifact
if (metadata.IsAggregateArtifact)
`{
Console.WriteLine($"Aggregate artifact: {metadata.Title}`");
}
else
`{
Console.WriteLine($"Data artifact: {metadata.Title}` ({metadata.ArtifactPythonDataType})");
}

// Access creation information
Console.WriteLine($"Created: {metadata.CreationTime} by {metadata.RoutineTypename}.{metadata.MethodName}");

Remarks

The Workspace.XBR.Xperiflow.Routines.Artifacts.ArtifactMetadata class contains comprehensive metadata about artifacts generated during routine executions. Artifacts are file-based outputs (such as data files, models, or reports) created by routine methods, and this class provides detailed information about their structure, location, and processing characteristics.

Key Concepts:

Usage Patterns:

This metadata is typically retrieved through Workspace.XBR.Xperiflow.Routines.Artifacts.IArtifactMetadataLookupClient and used to understand artifact characteristics before accessing the actual data. The metadata enables efficient querying and filtering of artifacts without loading their content.

Properties

Key

The key of the artifact. Note that this is not unique, but rather a human-readable identifier. Please use the Workspace.XBR.Xperiflow.Routines.Artifacts.ArtifactMetadata.QualifiedKey as a unique identifier within the context of a Routine Method Run.

Declaration
public string Key { get; set; }

QualifiedKey

The qualified key of the artifact. This uniqely identifiers the artifact in the context of a routine method. The difference between the Workspace.XBR.Xperiflow.Routines.Artifacts.ArtifactMetadata.Key and Workspace.XBR.Xperiflow.Routines.Artifacts.ArtifactMetadata.QualifiedKey is that the Workspace.XBR.Xperiflow.Routines.Artifacts.ArtifactMetadata.QualifiedKey is the fully qualified key and accounts for nested artifacts. The Workspace.XBR.Xperiflow.Routines.Artifacts.ArtifactMetadata.QualifiedKey is guaranteed to be unique within the Artifacts returned by a given Routine Method Run. An example of a Qualified Key may be "outer_artifact.inner_table_artifact" where the "outer_artifact" is the key of the outer artifact and "inner_table_artifact" is the key of the inner artifact. The Key for this Qualified Key example would just be "inner_table_artifact".

Declaration
public string QualifiedKey { get; set; }

Title

The human-readable alias of the artifact.

Declaration
public string Title { get; set; }

Description

The human-readable description of the artifact.

Declaration
public string Description { get; set; }

Path

The directory path to the artifact. Note that this is not the path to the artifact data, but rather the path to the artifact directory.

Declaration
public string Path { get; set; }

InstanceIdentifier

The instance identifier that this artifact belongs to.

Declaration
public string InstanceIdentifier { get; set; }

RunIdentifier

The run identifier that this artifact belongs to. This run generated this artifact.

Declaration
public string RunIdentifier { get; set; }

RoutineTypename

The Routine type that this artifact was generated from.

Declaration
public string RoutineTypename { get; set; }

MethodName

The routine method name that this artifact was generated from.

Declaration
public string MethodName { get; set; }

CreationTime

The UTC time that the artifact was created.

Declaration
public DateTime CreationTime { get; set; }

ArtifactPythonDataType

The python datatype of the artifact. This is the object type that was serialized to the file system using the IO factory.

Declaration
public string ArtifactPythonDataType { get; set; }

IsAggregateArtifact

Whether or not the artifact is an aggregate artifact. An aggregate artifact is an artifact that does not directly contain data, but rather it is a 'parent' of other artifacts. An aggregate artifact will still have its own metadata, statistics, and previews.

Declaration
public bool IsAggregateArtifact { get; set; }

Annotation

The annotation of the artifact. This is useful to inform the user about the type of data files that are stored in the artifact.

Declaration
public ArtifactAnnotation? Annotation { get; set; }

IoFactoryTypename

The python typename of the IO factory that is used for serializing and deserializing the artifact data. This will be null if the artifact is an aggregate artifact.

Declaration
public string? IoFactoryTypename { get; set; }

IoFactoryKwargs

The python keyword arguments that are used to instantiate.

Declaration
public JObject? IoFactoryKwargs { get; set; }

IoFactorySerializedInstanceData

The serialized instance data of the IO factory. This will be null if the artifact is an aggregate artifact.

Declaration
public JObject? IoFactorySerializedInstanceData { get; set; }

StatisticFactoryTypename

The python typename of the statistic factory that is used for generating the artifact statistics.

Declaration
public string? StatisticFactoryTypename { get; set; }

StatisticFactoryKwargs

The python keyword arguments that are used to instantiate the statistic factory.

Declaration
public JObject? StatisticFactoryKwargs { get; set; }

StatisticFactorySerializedInstanceData

The serialized instance data of the statistic factory.

Declaration
public JObject? StatisticFactorySerializedInstanceData { get; set; }

PreviewFactoryTypename

The python typename of the preview factory that is used for generating and serializing the artifact previews.

Declaration
public string? PreviewFactoryTypename { get; set; }

PreviewFactoryKwargs

The python keyword arguments that are used to instantiate the preview factory.

Declaration
public JObject? PreviewFactoryKwargs { get; set; }

PreviewFactorySerializedInstanceData

The serialized instance data of the preview factory.

Declaration
public JObject? PreviewFactorySerializedInstanceData { get; set; }

Inherited Members

  • System.Object.Equals(System.Object)
  • System.Object.Equals(System.Object,System.Object)
  • System.Object.GetHashCode
  • System.Object.GetType
  • System.Object.MemberwiseClone
  • System.Object.ReferenceEquals(System.Object,System.Object)
  • System.Object.ToString

Was this page helpful?