Class ArtifactSignature
Represents the signature of an artifact.
Inheritance
Namespace: Umbraco.Cms.Core.Deploy
Assembly: Umbraco.Core.dll
Syntax
public sealed class ArtifactSignature : IArtifactSignature
Constructors
View SourceArtifactSignature(Udi, String, Nullable<IEnumerable<ArtifactDependency>>)
Initializes a new instance of the ArtifactSignature class.
Declaration
public ArtifactSignature(Udi udi, string checksum, IEnumerable<ArtifactDependency>? dependencies = null)
Parameters
Type | Name | Description |
---|---|---|
Udi | udi | The UDI. |
System.String | checksum | The checksum. |
System.Nullable<IEnumerable<ArtifactDependency>> | dependencies | The artifact dependencies. |
Properties
View SourceChecksum
Gets the checksum of this artifact.
Declaration
public string Checksum { get; }
Property Value
Type | Description |
---|---|
System.String | The checksum. |
Remarks
The checksum depends on the artifact's properties, and on the identifiers of all its dependencies, but not on their checksums. So the checksum changes when any of the artifact's properties changes, or when the list of dependencies changes. But not if one of these dependencies change.
It is assumed that checksum collisions cannot happen ie that no two different artifact's states will ever produce the same checksum, so that if two artifacts have the same checksum then they are identical.
Dependencies
Gets the dependencies of this artifact.
Declaration
public IEnumerable<ArtifactDependency> Dependencies { get; }
Property Value
Type | Description |
---|---|
IEnumerable<ArtifactDependency> | The dependencies. |
Udi
Gets the entity unique identifier of this artifact.
Declaration
public Udi Udi { get; }
Property Value
Type | Description |
---|---|
Udi | The udi. |
Remarks
The project identifier is independent from the state of the artifact, its data values, dependencies, anything. It never changes and fully identifies the artifact.
What an entity uses as a unique identifier will influence what we can transfer between environments. Eg content type "Foo" on one environment is not necessarily the same as "Foo" on another environment, if guids are used as unique identifiers. What is used should be documented for each entity, along with the consequences of the choice.