A blob referenced via descriptor MAY be a fine-graind CAS archive. e.g. continuity manifest. (WIP: #577)
This might make it difficult to implement "gc" for blob store, because the actual referenced blob set cannot be assured just by parsing OCI descriptors.
So I suggest adding a new property named dependency to the descriptor spec.
{
"mediaType": "application/vnd.continuity.manifest.v0+json",
"digest": "sha256:deadbeef",
"size": 424242,
"dependency": {
"type": "media-specific"
},
}
When dependency.type is media-specific, implementations can skip pruning unless it is aware of the corresponding mediaType.
Spec Proposal (for v1.0 if possible)
Implementor's Note
Implementations MAY compute unreferenced blob set so as to prune them.
When implementations encouters a descpritor of which dependency.type is media-specific and the implementation is not aware of the corresponding media type, or dependency.type is set to unknown value, the implementation SHOULD NOT try to compute unreferenced blob set.
Post-v1
e.g. list (can be huge)
"dependency": {
"type": "list",
"list": [
"sha256:f00",
"sha256:baa",
]
}
e.g. list as a text file blob
"dependency": {
"type": "blob",
"blob": {
"mediaType": "application/vnd.oci.dependency.v2+text",
"digest": "sha256:ba2",
"size": 4242
}
}
A blob referenced via descriptor MAY be a fine-graind CAS archive. e.g. continuity manifest. (WIP: #577)
This might make it difficult to implement "gc" for blob store, because the actual referenced blob set cannot be assured just by parsing OCI descriptors.
So I suggest adding a new property named
dependencyto the descriptor spec.{ "mediaType": "application/vnd.continuity.manifest.v0+json", "digest": "sha256:deadbeef", "size": 424242, "dependency": { "type": "media-specific" }, }When
dependency.typeismedia-specific, implementations can skip pruning unless it is aware of the correspondingmediaType.Spec Proposal (for v1.0 if possible)
dependency.typestringThis OPTIONAL property specifies the type of the content set that targeted content refers.
Values SHOULD be one of the followings:
media-specific: the set is specific to the media type of the targeted contentImplementor's Note
Implementations MAY compute unreferenced blob set so as to prune them.
When implementations encouters a descpritor of which
dependency.typeismedia-specificand the implementation is not aware of the corresponding media type, ordependency.typeis set to unknown value, the implementation SHOULD NOT try to compute unreferenced blob set.Post-v1
e.g. list (can be huge)
e.g. list as a text file blob