2017-09-11 17:07:00 -04:00
|
|
|
package client
|
|
|
|
|
|
|
|
import (
|
2017-10-30 12:21:41 -04:00
|
|
|
"github.com/theupdateframework/notary/client/changelist"
|
|
|
|
"github.com/theupdateframework/notary/tuf/data"
|
|
|
|
"github.com/theupdateframework/notary/tuf/signed"
|
2017-09-11 17:07:00 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
// Repository represents the set of options that must be supported over a TUF repo.
|
|
|
|
type Repository interface {
|
|
|
|
// General management operations
|
|
|
|
Initialize(rootKeyIDs []string, serverManagedRoles ...data.RoleName) error
|
|
|
|
InitializeWithCertificate(rootKeyIDs []string, rootCerts []data.PublicKey, serverManagedRoles ...data.RoleName) error
|
|
|
|
Publish() error
|
|
|
|
|
|
|
|
// Target Operations
|
|
|
|
AddTarget(target *Target, roles ...data.RoleName) error
|
|
|
|
RemoveTarget(targetName string, roles ...data.RoleName) error
|
|
|
|
ListTargets(roles ...data.RoleName) ([]*TargetWithRole, error)
|
|
|
|
GetTargetByName(name string, roles ...data.RoleName) (*TargetWithRole, error)
|
|
|
|
GetAllTargetMetadataByName(name string) ([]TargetSignedStruct, error)
|
|
|
|
|
|
|
|
// Changelist operations
|
|
|
|
GetChangelist() (changelist.Changelist, error)
|
|
|
|
|
|
|
|
// Role operations
|
|
|
|
ListRoles() ([]RoleWithSignatures, error)
|
|
|
|
GetDelegationRoles() ([]data.Role, error)
|
|
|
|
AddDelegation(name data.RoleName, delegationKeys []data.PublicKey, paths []string) error
|
|
|
|
AddDelegationRoleAndKeys(name data.RoleName, delegationKeys []data.PublicKey) error
|
|
|
|
AddDelegationPaths(name data.RoleName, paths []string) error
|
|
|
|
RemoveDelegationKeysAndPaths(name data.RoleName, keyIDs, paths []string) error
|
|
|
|
RemoveDelegationRole(name data.RoleName) error
|
|
|
|
RemoveDelegationPaths(name data.RoleName, paths []string) error
|
|
|
|
RemoveDelegationKeys(name data.RoleName, keyIDs []string) error
|
|
|
|
ClearDelegationPaths(name data.RoleName) error
|
|
|
|
|
|
|
|
// Witness and other re-signing operations
|
|
|
|
Witness(roles ...data.RoleName) ([]data.RoleName, error)
|
|
|
|
|
|
|
|
// Key Operations
|
|
|
|
RotateKey(role data.RoleName, serverManagesKey bool, keyList []string) error
|
|
|
|
|
|
|
|
GetCryptoService() signed.CryptoService
|
|
|
|
SetLegacyVersions(int)
|
|
|
|
GetGUN() data.GUN
|
|
|
|
}
|