Help us shape the future of Go! Take the 2026 Go Developer Survey

policies

package
v1.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Path separator is used to separate policy names in paths
	PathSeparator = "/"

	// ChannelPrefix is used in the path of standard channel policy managers
	ChannelPrefix = "Channel"

	// ApplicationPrefix is used in the path of standard application policy paths
	ApplicationPrefix = "Application"

	// OrdererPrefix is used in the path of standard orderer policy paths
	OrdererPrefix = "Orderer"

	// ChannelReaders is the label for the channel's readers policy (encompassing both orderer and application readers)
	ChannelReaders = PathSeparator + ChannelPrefix + PathSeparator + "Readers"

	// ChannelWriters is the label for the channel's writers policy (encompassing both orderer and application writers)
	ChannelWriters = PathSeparator + ChannelPrefix + PathSeparator + "Writers"

	// ChannelApplicationReaders is the label for the channel's application readers policy
	ChannelApplicationReaders = PathSeparator + ChannelPrefix + PathSeparator + ApplicationPrefix + PathSeparator + "Readers"

	// ChannelApplicationWriters is the label for the channel's application writers policy
	ChannelApplicationWriters = PathSeparator + ChannelPrefix + PathSeparator + ApplicationPrefix + PathSeparator + "Writers"

	// ChannelApplicationAdmins is the label for the channel's application admin policy
	ChannelApplicationAdmins = PathSeparator + ChannelPrefix + PathSeparator + ApplicationPrefix + PathSeparator + "Admins"

	// BlockValidation is the label for the policy which should validate the block signatures for the channel
	BlockValidation = PathSeparator + ChannelPrefix + PathSeparator + OrdererPrefix + PathSeparator + "BlockValidation"

	// ChannelOrdererAdmins is the label for the channel's orderer admin policy
	ChannelOrdererAdmins = PathSeparator + ChannelPrefix + PathSeparator + OrdererPrefix + PathSeparator + "Admins"

	// ChannelOrdererWriters is the label for the channel's orderer writers policy
	ChannelOrdererWriters = PathSeparator + ChannelPrefix + PathSeparator + OrdererPrefix + PathSeparator + "Writers"

	// ChannelOrdererReaders is the label for the channel's orderer readers policy
	ChannelOrdererReaders = PathSeparator + ChannelPrefix + PathSeparator + OrdererPrefix + PathSeparator + "Readers"
)

Variables

This section is empty.

Functions

func ImplicitMetaFromString added in v1.2.0

func ImplicitMetaFromString(input string) (*cb.ImplicitMetaPolicy, error)

func ImplicitMetaPolicyWithSubPolicy

func ImplicitMetaPolicyWithSubPolicy(subPolicyName string, rule cb.ImplicitMetaPolicy_Rule) *cb.ConfigPolicy

ImplicitMetaPolicyWithSubPolicy creates an implicitmeta policy

func TemplateImplicitMetaAllPolicy

func TemplateImplicitMetaAllPolicy(path []string, policyName string) *cb.ConfigGroup

TempateImplicitMetaAnyPolicy returns TemplateImplicitMetaPolicy with cb.ImplicitMetaPolicy_ALL as the rule

func TemplateImplicitMetaAnyPolicy

func TemplateImplicitMetaAnyPolicy(path []string, policyName string) *cb.ConfigGroup

TempateImplicitMetaAnyPolicy returns TemplateImplicitMetaPolicy with cb.ImplicitMetaPolicy_ANY as the rule

func TemplateImplicitMetaMajorityPolicy

func TemplateImplicitMetaMajorityPolicy(path []string, policyName string) *cb.ConfigGroup

TempateImplicitMetaAnyPolicy returns TemplateImplicitMetaPolicy with cb.ImplicitMetaPolicy_MAJORITY as the rule

func TemplateImplicitMetaPolicy

func TemplateImplicitMetaPolicy(path []string, policyName string, rule cb.ImplicitMetaPolicy_Rule) *cb.ConfigGroup

TemplateImplicitMetaPolicy creates a policy at the specified path with the given policyName It utilizes the policyName for the subPolicyName as well, as this is the standard usage pattern

func TemplateImplicitMetaPolicyWithSubPolicy

func TemplateImplicitMetaPolicyWithSubPolicy(path []string, policyName string, subPolicyName string, rule cb.ImplicitMetaPolicy_Rule) *cb.ConfigGroup

TemplateImplicitMetaPolicy creates a policy at the specified path with the given policyName and subPolicyName

Types

type ChannelPolicyManagerGetter

type ChannelPolicyManagerGetter interface {
	// Returns the policy manager associated to the passed channel
	// and true if it was the manager requested, or false if it is the default manager
	Manager(channelID string) (Manager, bool)
}

ChannelPolicyManagerGetter is a support interface to get access to the policy manager of a given channel

type ConfigPolicy added in v1.1.0

type ConfigPolicy interface {
	// Key is the key this value should be stored in the *cb.ConfigGroup.Policies map.
	Key() string

	// Value is the backing policy implementation for this ConfigPolicy
	Value() *cb.Policy
}

ConfigPolicy defines a common representation for different *cb.ConfigPolicy values.

type InquireablePolicy added in v1.2.0

type InquireablePolicy interface {
	// SatisfiedBy returns a slice of PrincipalSets that each of them
	// satisfies the policy.
	SatisfiedBy() []PrincipalSet
}

InquireablePolicy is a Policy that one can inquire

type Manager

type Manager interface {
	// GetPolicy returns a policy and true if it was the policy requested, or false if it is the default policy
	GetPolicy(id string) (Policy, bool)

	// Manager returns the sub-policy manager for a given path and whether it exists
	Manager(path []string) (Manager, bool)
}

Manager is a read only subset of the policy ManagerImpl

type ManagerImpl

type ManagerImpl struct {
	// contains filtered or unexported fields
}

ManagerImpl is an implementation of Manager and configtx.ConfigHandler In general, it should only be referenced as an Impl for the configtx.ConfigManager

func NewManagerImpl

func NewManagerImpl(path string, providers map[int32]Provider, root *cb.ConfigGroup) (*ManagerImpl, error)

NewManagerImpl creates a new ManagerImpl with the given CryptoHelper

func (*ManagerImpl) GetPolicy

func (pm *ManagerImpl) GetPolicy(id string) (Policy, bool)

GetPolicy returns a policy and true if it was the policy requested, or false if it is the default reject policy

func (*ManagerImpl) Manager

func (pm *ManagerImpl) Manager(path []string) (Manager, bool)

Manager returns the sub-policy manager for a given path and whether it exists

type Policy

type Policy interface {
	// Evaluate takes a set of SignedData and evaluates whether this set of signatures satisfies the policy
	Evaluate(signatureSet []*cb.SignedData) error
}

Policy is used to determine if a signature is valid

type PrincipalSet added in v1.2.0

type PrincipalSet []*msp.MSPPrincipal

PrincipalSet is a collection of MSPPrincipals

func (PrincipalSet) ContainingOnly added in v1.2.0

func (ps PrincipalSet) ContainingOnly(f func(*msp.MSPPrincipal) bool) bool

ContainingOnly returns whether the given PrincipalSet contains only Principals that satisfy the given predicate

func (PrincipalSet) UniqueSet added in v1.2.0

func (ps PrincipalSet) UniqueSet() map[*msp.MSPPrincipal]int

UniqueSet returns a histogram that is induced by the PrincipalSet

type PrincipalSets added in v1.2.0

type PrincipalSets []PrincipalSet

PrincipalSets aggregates PrincipalSets

func (PrincipalSets) ContainingOnly added in v1.2.0

func (psSets PrincipalSets) ContainingOnly(f func(*msp.MSPPrincipal) bool) PrincipalSets

ContainingOnly returns PrincipalSets that contain only principals of the given predicate

type Provider

type Provider interface {
	// NewPolicy creates a new policy based on the policy bytes
	NewPolicy(data []byte) (Policy, proto.Message, error)
}

Provider provides the backing implementation of a policy

type StandardConfigPolicy added in v1.1.0

type StandardConfigPolicy struct {
	// contains filtered or unexported fields
}

StandardConfigValue implements the ConfigValue interface.

func ImplicitMetaAllPolicy added in v1.1.0

func ImplicitMetaAllPolicy(policyName string) *StandardConfigPolicy

ImplicitMetaAllPolicy defines an implicit meta policy whose sub_policy and key is policyname with rule ALL.

func ImplicitMetaAnyPolicy added in v1.1.0

func ImplicitMetaAnyPolicy(policyName string) *StandardConfigPolicy

ImplicitMetaAnyPolicy defines an implicit meta policy whose sub_policy and key is policyname with rule ANY.

func ImplicitMetaMajorityPolicy added in v1.1.0

func ImplicitMetaMajorityPolicy(policyName string) *StandardConfigPolicy

ImplicitMetaMajorityPolicy defines an implicit meta policy whose sub_policy and key is policyname with rule MAJORITY.

func SignaturePolicy added in v1.1.0

func SignaturePolicy(policyName string, sigPolicy *cb.SignaturePolicyEnvelope) *StandardConfigPolicy

ImplicitMetaMajorityPolicy defines a policy with key policyName and the given signature policy.

func (*StandardConfigPolicy) Key added in v1.1.0

func (scv *StandardConfigPolicy) Key() string

Key is the key this value should be stored in the *cb.ConfigGroup.Values map.

func (*StandardConfigPolicy) Value added in v1.1.0

func (scv *StandardConfigPolicy) Value() *cb.Policy

Value is the *cb.Policy which should be stored as the *cb.ConfigPolicy.Policy.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL