Class ArtifactMetadata
Represents metadata information for an artifact produced by a routine execution.
Namespace: Workspace.XBR.Xperiflow.Routines.Artifacts
Assembly: Xperiflow.dll
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:
-
Key vs Qualified Key The Workspace.XBR.Xperiflow.Routines.Artifacts.ArtifactMetadata.Key is a human-readable identifier that may not be unique, while Workspace.XBR.Xperiflow.Routines.Artifacts.ArtifactMetadata.QualifiedKey provides a unique identifier within a routine run context
-
Aggregate Artifacts Artifacts that serve as containers for other artifacts rather than containing data directly
-
Factory Pattern IO, Statistic, and Preview factories handle serialization, statistics generation, and preview creation
-
Runtime Context Links to the specific routine instance, run, and method that produced the artifact
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.
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".
public string QualifiedKey { get; set; }
Title
The human-readable alias of the artifact.
public string Title { get; set; }
Description
The human-readable description of the artifact.
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.
public string Path { get; set; }
InstanceIdentifier
The instance identifier that this artifact belongs to.
public string InstanceIdentifier { get; set; }
RunIdentifier
The run identifier that this artifact belongs to. This run generated this artifact.
public string RunIdentifier { get; set; }
RoutineTypename
The Routine type that this artifact was generated from.
public string RoutineTypename { get; set; }
MethodName
The routine method name that this artifact was generated from.
public string MethodName { get; set; }
CreationTime
The UTC time that the artifact was created.
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.
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.
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.
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.
public string? IoFactoryTypename { get; set; }
IoFactoryKwargs
The python keyword arguments that are used to instantiate.
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.
public JObject? IoFactorySerializedInstanceData { get; set; }
StatisticFactoryTypename
The python typename of the statistic factory that is used for generating the artifact statistics.
public string? StatisticFactoryTypename { get; set; }
StatisticFactoryKwargs
The python keyword arguments that are used to instantiate the statistic factory.
public JObject? StatisticFactoryKwargs { get; set; }
StatisticFactorySerializedInstanceData
The serialized instance data of the statistic factory.
public JObject? StatisticFactorySerializedInstanceData { get; set; }
PreviewFactoryTypename
The python typename of the preview factory that is used for generating and serializing the artifact previews.
public string? PreviewFactoryTypename { get; set; }
PreviewFactoryKwargs
The python keyword arguments that are used to instantiate the preview factory.
public JObject? PreviewFactoryKwargs { get; set; }
PreviewFactorySerializedInstanceData
The serialized instance data of the preview factory.
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