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; }