angelos.lib.policy.accept

Module docstring.

class angelos.lib.policy.accept.BaseDocumentPortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BasePortfolioPolicy, abc.ABC

Base class for portfolio issued document policies.

TYPES = (<class 'angelos.document.document.Document'>,)
validate_all(documents: Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope, Set[Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]]])angelos.lib.validation.Rep

Validate a batch of documents against the portfolio.

Parameters

documents (Set[DocumentT()]) – Documents to be validated in batch.

Returns (Report):

Report with the batch result.

validate_document(document: Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope], report: Optional[angelos.lib.validation.Rep] = None)

Receive a document to be validated against the portfolio.

Parameters
  • document (DocumentT) – Document to validate.

  • report (Report) – The journal to write to.

Returns (bool):

The validation result.

class angelos.lib.policy.accept.BaseDocumentUpdatePortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BasePortfolioPolicy, abc.ABC

Base class for importing updated documents to portfolio policies.

TYPES = (<class 'angelos.document.document.Document'>,)
validate_all(documents: Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope, Set[Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]]])angelos.lib.validation.Rep

Validate a batch of documents against the portfolio.

Parameters

documents (Set[DocumentT()]) – Documents to be validated in batch.

Returns (Report):

Report with the batch result.

validate_document(document: Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope], report: Optional[angelos.lib.validation.Rep] = None)

Receive a document to be validated against the portfolio.

Parameters
  • document (DocumentT) – Document to validate.

  • report (Report) – The journal to write to.

Returns (bool):

The validation result.

class angelos.lib.policy.accept.BasePortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.policy.BasePolicy, angelos.lib.policy.policy.BasePolicyMixin, abc.ABC

Base class for portfolio policies.

class angelos.lib.policy.accept.DomainUpdatePortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BaseDocumentUpdatePortfolioPolicy

Update the entity of the network checking changes, validating and verifying.

TYPES = (<class 'angelos.document.domain.Domain'>,)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply all the rules defined within.

Example

rules = [

(self._check_something, b’I’, 345)

] return self._checker(rules, report, identity)

Parameters
  • identity (uuid.UUID) – Identity to use if this class is a sub validatable.

  • report (Report) – The journal of the validation result.

Returns (bool):

Result of the rules, True if all passed or False.

class angelos.lib.policy.accept.EntityKeysPortfolioValidatePolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BasePortfolioPolicy

0I-0000: Check that an entity and key pair in a portfolio validates. Entity and keys must validate.

apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply rules.

class angelos.lib.policy.accept.EntityUpdatePortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BaseDocumentUpdatePortfolioPolicy

Update the entity of the profile checking changes, validating and verifying.

TYPES = (<class 'angelos.document.entities.Person'>, <class 'angelos.document.entities.Ministry'>, <class 'angelos.document.entities.Church'>)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply all the rules defined within.

Example

rules = [

(self._check_something, b’I’, 345)

] return self._checker(rules, report, identity)

Parameters
  • identity (uuid.UUID) – Identity to use if this class is a sub validatable.

  • report (Report) – The journal of the validation result.

Returns (bool):

Result of the rules, True if all passed or False.

class angelos.lib.policy.accept.ImportPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.policy.Policy

Validate documents before import to facade.

entity() -> (typing.Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church], <class 'angelos.document.entities.Keys'>)

Validate entity for import, use internal portfolio.

envelope(sender: angelos.lib.policy.portfolio.Portfolio, envelope: angelos.document.envelope.Envelope)angelos.document.envelope.Envelope

Validate an envelope addressed to the internal portfolio.

issued_document(document: Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]) → Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]

Validate document issued by internal portfolio.

message(sender: angelos.lib.policy.portfolio.Portfolio, message: Union[angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report]) → Union[angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report]

Validate a message addressed to the internal portfolio.

node_document(node: angelos.document.domain.Node) → Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]

Validate document issued by internal portfolio.

owned_document(issuer: angelos.lib.policy.portfolio.Portfolio, document: Union[angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked]) → Union[angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked]

Validate document owned by internal portfolio.

class angelos.lib.policy.accept.ImportUpdatePolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.policy.Policy

Policy for accepting updateable documents.

entity(entity: Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church])

Validate updated entity.

keys(newkeys: angelos.document.entities.Keys)

Validate newkey generated keys.

class angelos.lib.policy.accept.IssuedDocumentPortfolioValidatePolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BaseDocumentPortfolioPolicy

0I-0000: Check that documents issued by a portfolio validate. Issued documents must validate with the portfolio.

This policy expects EntityKeysPortfolioValidatePolicy to apply.

TYPES = (<class 'angelos.document.statements.Revoked'>, <class 'angelos.document.statements.Trusted'>, <class 'angelos.document.statements.Verified'>, <class 'angelos.document.profiles.PersonProfile'>, <class 'angelos.document.profiles.MinistryProfile'>, <class 'angelos.document.profiles.ChurchProfile'>, <class 'angelos.document.domain.Domain'>, <class 'angelos.document.domain.Network'>, <class 'angelos.document.entities.Keys'>, <class 'angelos.document.entities.PrivateKeys'>)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply rules.

class angelos.lib.policy.accept.KeysImportPortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BaseDocumentUpdatePortfolioPolicy

TYPES = (<class 'angelos.document.entities.Keys'>,)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply all the rules defined within.

Example

rules = [

(self._check_something, b’I’, 345)

] return self._checker(rules, report, identity)

Parameters
  • identity (uuid.UUID) – Identity to use if this class is a sub validatable.

  • report (Report) – The journal of the validation result.

Returns (bool):

Result of the rules, True if all passed or False.

class angelos.lib.policy.accept.NetworkUpdatePortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BaseDocumentUpdatePortfolioPolicy

Update the entity of the network checking changes, validating and verifying.

TYPES = (<class 'angelos.document.domain.Network'>,)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply all the rules defined within.

Example

rules = [

(self._check_something, b’I’, 345)

] return self._checker(rules, report, identity)

Parameters
  • identity (uuid.UUID) – Identity to use if this class is a sub validatable.

  • report (Report) – The journal of the validation result.

Returns (bool):

Result of the rules, True if all passed or False.

class angelos.lib.policy.accept.NewKeysPortfolioValidatePolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.IssuedDocumentPortfolioValidatePolicy

0I-0000: Check that a new key issued by a portfolio cryptographically verifies with itself and older key. New keys must verify with an existing portfolio key..

This policy expects the portfolio to have an older key.

TYPES = (<class 'angelos.document.entities.Keys'>,)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply rules.

class angelos.lib.policy.accept.NodePortfolioValidatePolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.IssuedDocumentPortfolioValidatePolicy

0I-0000: Check that nodes issued by a portfolio has a domain and validate. Issued nodes must validate with the portfolio domain.

This policy expects the portfolio to have valid domain document.

TYPES = (<class 'angelos.document.domain.Node'>,)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply rules.

class angelos.lib.policy.accept.NodeUpdatePortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BaseDocumentUpdatePortfolioPolicy

Update the entity of the network checking changes, validating and verifying.

TYPES = (<class 'angelos.document.domain.Node'>,)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply all the rules defined within.

Example

rules = [

(self._check_something, b’I’, 345)

] return self._checker(rules, report, identity)

Parameters
  • identity (uuid.UUID) – Identity to use if this class is a sub validatable.

  • report (Report) – The journal of the validation result.

Returns (bool):

Result of the rules, True if all passed or False.

class angelos.lib.policy.accept.OwnedDocumentPortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BaseDocumentPortfolioPolicy

0I-0000: Check that owned documents issued by an issuing portfolio validate and is linked to portfolio. Issued documents must validate with the portfolio and issuer.

TYPES = (<class 'angelos.document.statements.Revoked'>, <class 'angelos.document.statements.Trusted'>, <class 'angelos.document.statements.Verified'>, <class 'angelos.document.envelope.Envelope'>, <class 'angelos.document.messages.Note'>, <class 'angelos.document.messages.Instant'>, <class 'angelos.document.messages.Mail'>)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply rules.

class angelos.lib.policy.accept.PrivateKeysImportPortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BaseDocumentUpdatePortfolioPolicy

TYPES = (<class 'angelos.document.entities.PrivateKeys'>,)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply all the rules defined within.

Example

rules = [

(self._check_something, b’I’, 345)

] return self._checker(rules, report, identity)

Parameters
  • identity (uuid.UUID) – Identity to use if this class is a sub validatable.

  • report (Report) – The journal of the validation result.

Returns (bool):

Result of the rules, True if all passed or False.

class angelos.lib.policy.accept.ProfileUpdatePortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BaseDocumentUpdatePortfolioPolicy

Update the entity of the profile checking changes, validating and verifying.

TYPES = (<class 'angelos.document.profiles.PersonProfile'>, <class 'angelos.document.profiles.MinistryProfile'>, <class 'angelos.document.profiles.ChurchProfile'>)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply all the rules defined within.

Example

rules = [

(self._check_something, b’I’, 345)

] return self._checker(rules, report, identity)

Parameters
  • identity (uuid.UUID) – Identity to use if this class is a sub validatable.

  • report (Report) – The journal of the validation result.

Returns (bool):

Result of the rules, True if all passed or False.

class angelos.lib.policy.accept.StatementImportPortfolioPolicy(portfolio: angelos.lib.policy.portfolio.Portfolio)

Bases: angelos.lib.policy.accept.BaseDocumentUpdatePortfolioPolicy

TYPES = (<class 'angelos.document.statements.Revoked'>, <class 'angelos.document.statements.Trusted'>, <class 'angelos.document.statements.Verified'>)
apply_rules(report: Optional[angelos.lib.validation.Rep] = None, identity: uuid.UUID = UUID('00000000-0000-0000-0000-000000000000'))

Apply all the rules defined within.

Example

rules = [

(self._check_something, b’I’, 345)

] return self._checker(rules, report, identity)

Parameters
  • identity (uuid.UUID) – Identity to use if this class is a sub validatable.

  • report (Report) – The journal of the validation result.

Returns (bool):

Result of the rules, True if all passed or False.