32 lines
1.3 KiB
Go
32 lines
1.3 KiB
Go
|
|
package resources
|
||
|
|
|
||
|
|
// OriginType qualifies where a resource instance comes from.
|
||
|
|
type OriginType int
|
||
|
|
|
||
|
|
const (
|
||
|
|
// OriginPeer: instance offered by a known network peer (default).
|
||
|
|
OriginPeer OriginType = iota
|
||
|
|
// OriginPublic: instance from a public registry (Docker Hub, HuggingFace, etc.).
|
||
|
|
// No peer confirmation is needed; access is unrestricted.
|
||
|
|
OriginPublic
|
||
|
|
// OriginSelf: self-hosted instance with no third-party peer.
|
||
|
|
OriginSelf
|
||
|
|
)
|
||
|
|
|
||
|
|
// OriginMeta carries provenance information for a resource instance.
|
||
|
|
type OriginMeta struct {
|
||
|
|
Type OriginType `json:"origin_type" bson:"origin_type"`
|
||
|
|
Ref string `json:"origin_ref,omitempty" bson:"origin_ref,omitempty"` // e.g. "docker.io/pytorch/pytorch:2.1"
|
||
|
|
License string `json:"origin_license,omitempty" bson:"origin_license,omitempty"` // SPDX identifier or free-form
|
||
|
|
Verified bool `json:"origin_verified" bson:"origin_verified"` // manually vetted by an OC admin
|
||
|
|
}
|
||
|
|
|
||
|
|
// IsPeerless MUST NOT be used for authorization decisions.
|
||
|
|
// Use ResourceInstance.IsPeerless() instead, which derives the property
|
||
|
|
// from structural invariants rather than this self-declared field.
|
||
|
|
//
|
||
|
|
// This method is kept only for display/logging purposes.
|
||
|
|
func (o OriginMeta) DeclaredPeerless() bool {
|
||
|
|
return o.Type != OriginPeer
|
||
|
|
}
|