Class ApprovalService

java.lang.Object
zeroecho.pki.server.ApprovalService

public final class ApprovalService extends Object
Durable exact-operation multi-party approval service.
  • Constructor Details

    • ApprovalService

      public ApprovalService(ServerControlStore store, Clock clock, AuditSink auditSink)
      Creates a durable approval service over one server-control authority.
      Parameters:
      store - durable server-control store
      clock - authoritative server clock
      auditSink - required safe audit sink
  • Method Details

    • request

      public ApprovalService.Request request(String approvalId, String operationId, String operationCommitment, Permission.Scope scope, String requesterPrincipalId, ApprovalService.Policy policy)
      Creates a new pending exact-operation request.
      Parameters:
      approvalId - stable approval identifier
      operationId - stable typed operation identifier
      operationCommitment - exact safe operation commitment
      scope - exact security scope
      requesterPrincipalId - requesting principal identifier
      policy - frozen approval policy
      Returns:
      new durable pending approval request
    • decide

      public ApprovalService.Request decide(String approvalId, String principalId, ApprovalService.Choice choice, String justification)
      Records one distinct qualified decision and advances the durable state.
      Parameters:
      approvalId - stable approval identifier
      principalId - deciding principal identifier
      choice - approval or rejection
      justification - bounded operator justification
      Returns:
      durably updated approval request
    • cancel

      public ApprovalService.Request cancel(String approvalId, String requesterPrincipalId)
      Cancels a pending request by its requester.
      Parameters:
      approvalId - stable approval identifier
      requesterPrincipalId - requesting principal identifier
      Returns:
      durably cancelled request
    • claim

      public ApprovalService.Request claim(String approvalId, String operationId, String operationCommitment, Permission.Scope scope)
      Validates and durably claims an approved operation before dispatch.
      Parameters:
      approvalId - stable approval identifier
      operationId - stable typed operation identifier
      operationCommitment - exact safe operation commitment
      scope - exact security scope
      Returns:
      durably claimed executing request
    • complete

      public ApprovalService.Request complete(String approvalId, String safeResultClassification)
      Durably links the safe result of one claimed execution.
      Parameters:
      approvalId - stable approval identifier
      safeResultClassification - safe linked execution result
      Returns:
      durably executed request
    • requireCurrent

      public ApprovalService.Request requireCurrent(String approvalId)
      Returns the current record, applying durable expiry when necessary.
      Parameters:
      approvalId - stable approval identifier
      Returns:
      current request after applying expiry
    • digest

      public static String digest(String canonical)
      Computes a deterministic SHA-256 hexadecimal commitment.
      Parameters:
      canonical - canonical non-secret value to commit
      Returns:
      lowercase SHA-256 commitment