Documentation
¶
Overview ¶
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: AGPL-3.0-or-later
Index ¶
- type ChainIntegrityResult
- type ChecksumService
- func (s *ChecksumService) GetChecksumInfo(ctx context.Context, docID string) (map[string]interface{}, error)
- func (s *ChecksumService) GetSupportedAlgorithms() []string
- func (s *ChecksumService) GetVerificationHistory(ctx context.Context, docID string, limit int) ([]*models.ChecksumVerification, error)
- func (s *ChecksumService) ValidateChecksumFormat(checksum, algorithm string) error
- func (s *ChecksumService) VerifyChecksum(ctx context.Context, docID, calculatedChecksum, verifiedBy string) (*models.ChecksumVerificationResult, error)
- type ChecksumVerificationRepository
- type CreateDocumentRequest
- type DocumentRepository
- type DocumentService
- func (s *DocumentService) CreateDocument(ctx context.Context, req CreateDocumentRequest) (*models.Document, error)
- func (s *DocumentService) FindByReference(ctx context.Context, ref string, refType string) (*models.Document, error)
- func (s *DocumentService) FindOrCreateDocument(ctx context.Context, ref string) (*models.Document, bool, error)
- type ReferenceType
- type ReminderAsyncService
- func (s *ReminderAsyncService) EnableAsync(enabled bool)
- func (s *ReminderAsyncService) GetQueueStats(ctx context.Context) (*models.EmailQueueStats, error)
- func (s *ReminderAsyncService) GetReminderHistory(ctx context.Context, docID string) ([]*models.ReminderLog, error)
- func (s *ReminderAsyncService) GetReminderStats(ctx context.Context, docID string) (*models.ReminderStats, error)
- func (s *ReminderAsyncService) SendReminders(ctx context.Context, docID string, sentBy string, specificEmails []string, ...) (*models.ReminderSendResult, error)
- func (s *ReminderAsyncService) SendRemindersAsync(ctx context.Context, docID string, sentBy string, specificEmails []string, ...) (*models.ReminderSendResult, error)
- type ReminderService
- func (s *ReminderService) GetReminderHistory(ctx context.Context, docID string) ([]*models.ReminderLog, error)
- func (s *ReminderService) GetReminderStats(ctx context.Context, docID string) (*models.ReminderStats, error)
- func (s *ReminderService) SendReminders(ctx context.Context, docID string, sentBy string, specificEmails []string, ...) (*models.ReminderSendResult, error)
- type SignatureService
- func (s *SignatureService) CheckUserSignature(ctx context.Context, docID, userIdentifier string) (bool, error)
- func (s *SignatureService) CreateSignature(ctx context.Context, request *models.SignatureRequest) error
- func (s *SignatureService) GetDocumentSignatures(ctx context.Context, docID string) ([]*models.Signature, error)
- func (s *SignatureService) GetSignatureByDocAndUser(ctx context.Context, docID string, user *models.User) (*models.Signature, error)
- func (s *SignatureService) GetSignatureStatus(ctx context.Context, docID string, user *models.User) (*models.SignatureStatus, error)
- func (s *SignatureService) GetUserSignatures(ctx context.Context, user *models.User) ([]*models.Signature, error)
- func (s *SignatureService) RebuildChain(ctx context.Context) error
- func (s *SignatureService) SetChecksumConfig(cfg *config.ChecksumConfig)
- func (s *SignatureService) VerifyChainIntegrity(ctx context.Context) (*ChainIntegrityResult, error)
- type WebhookPublisher
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChainIntegrityResult ¶
type ChecksumService ¶
type ChecksumService struct {
// contains filtered or unexported fields
}
ChecksumService orchestrates document integrity verification with audit trail persistence
func NewChecksumService ¶
func NewChecksumService( verificationRepo ChecksumVerificationRepository, documentRepo DocumentRepository, ) *ChecksumService
NewChecksumService initializes checksum verification service with required repository dependencies
func (*ChecksumService) GetChecksumInfo ¶
func (s *ChecksumService) GetChecksumInfo(ctx context.Context, docID string) (map[string]interface{}, error)
GetChecksumInfo exposes document hash metadata for public verification interfaces
func (*ChecksumService) GetSupportedAlgorithms ¶
func (s *ChecksumService) GetSupportedAlgorithms() []string
GetSupportedAlgorithms returns available hash algorithms for client-side documentation
func (*ChecksumService) GetVerificationHistory ¶
func (s *ChecksumService) GetVerificationHistory(ctx context.Context, docID string, limit int) ([]*models.ChecksumVerification, error)
GetVerificationHistory retrieves paginated audit trail of all checksum validation attempts
func (*ChecksumService) ValidateChecksumFormat ¶
func (s *ChecksumService) ValidateChecksumFormat(checksum, algorithm string) error
ValidateChecksumFormat ensures checksum matches expected hexadecimal length for SHA-256/SHA-512/MD5
func (*ChecksumService) VerifyChecksum ¶
func (s *ChecksumService) VerifyChecksum(ctx context.Context, docID, calculatedChecksum, verifiedBy string) (*models.ChecksumVerificationResult, error)
VerifyChecksum compares calculated hash against stored reference and creates immutable audit record
type ChecksumVerificationRepository ¶
type ChecksumVerificationRepository interface {
RecordVerification(ctx context.Context, verification *models.ChecksumVerification) error
GetVerificationHistory(ctx context.Context, docID string, limit int) ([]*models.ChecksumVerification, error)
GetLastVerification(ctx context.Context, docID string) (*models.ChecksumVerification, error)
}
ChecksumVerificationRepository defines the interface for checksum verification persistence
type CreateDocumentRequest ¶
type CreateDocumentRequest struct {
Reference string `json:"reference" validate:"required,min=1"`
Title string `json:"title"`
}
CreateDocumentRequest represents the request to create a document
type DocumentRepository ¶
type DocumentRepository interface {
GetByDocID(ctx context.Context, docID string) (*models.Document, error)
}
DocumentRepository defines the interface for document metadata operations
type DocumentService ¶
type DocumentService struct {
// contains filtered or unexported fields
}
DocumentService handles document metadata operations and unique ID generation
func NewDocumentService ¶
func NewDocumentService(repo documentRepository, checksumConfig *config.ChecksumConfig) *DocumentService
NewDocumentService initializes the document service with its repository dependency
func (*DocumentService) CreateDocument ¶
func (s *DocumentService) CreateDocument(ctx context.Context, req CreateDocumentRequest) (*models.Document, error)
CreateDocument generates a collision-resistant base36 identifier and persists document metadata
func (*DocumentService) FindByReference ¶
func (s *DocumentService) FindByReference(ctx context.Context, ref string, refType string) (*models.Document, error)
FindByReference finds a document by its reference without creating it
func (*DocumentService) FindOrCreateDocument ¶
func (s *DocumentService) FindOrCreateDocument(ctx context.Context, ref string) (*models.Document, bool, error)
FindOrCreateDocument performs smart lookup by URL/path/reference or creates new document if not found
type ReferenceType ¶
type ReferenceType string
const ( ReferenceTypeURL ReferenceType = "url" ReferenceTypePath ReferenceType = "path" ReferenceTypeReference ReferenceType = "reference" )
type ReminderAsyncService ¶
type ReminderAsyncService struct {
// contains filtered or unexported fields
}
ReminderAsyncService manages email notifications using asynchronous queue
func NewReminderAsyncService ¶
func NewReminderAsyncService( expectedSignerRepo expectedSignerRepository, reminderRepo reminderRepository, queueRepo emailQueueRepository, baseURL string, ) *ReminderAsyncService
NewReminderAsyncService initializes async reminder service with queue support
func (*ReminderAsyncService) EnableAsync ¶
func (s *ReminderAsyncService) EnableAsync(enabled bool)
EnableAsync enables or disables async queue processing
func (*ReminderAsyncService) GetQueueStats ¶
func (s *ReminderAsyncService) GetQueueStats(ctx context.Context) (*models.EmailQueueStats, error)
GetQueueStats returns current email queue statistics
func (*ReminderAsyncService) GetReminderHistory ¶
func (s *ReminderAsyncService) GetReminderHistory(ctx context.Context, docID string) ([]*models.ReminderLog, error)
GetReminderHistory retrieves complete email send log with success/failure tracking
func (*ReminderAsyncService) GetReminderStats ¶
func (s *ReminderAsyncService) GetReminderStats(ctx context.Context, docID string) (*models.ReminderStats, error)
GetReminderStats retrieves aggregated reminder metrics for monitoring dashboard
func (*ReminderAsyncService) SendReminders ¶
func (s *ReminderAsyncService) SendReminders( ctx context.Context, docID string, sentBy string, specificEmails []string, docURL string, locale string, ) (*models.ReminderSendResult, error)
SendReminders is a compatibility method that calls SendRemindersAsync This allows the service to work with existing interfaces expecting SendReminders
func (*ReminderAsyncService) SendRemindersAsync ¶
func (s *ReminderAsyncService) SendRemindersAsync( ctx context.Context, docID string, sentBy string, specificEmails []string, docURL string, locale string, ) (*models.ReminderSendResult, error)
SendRemindersAsync dispatches email notifications to queue for async processing
type ReminderService ¶
type ReminderService struct {
// contains filtered or unexported fields
}
ReminderService manages email notifications to pending signers with delivery tracking
func NewReminderService ¶
func NewReminderService( expectedSignerRepo expectedSignerRepository, reminderRepo reminderRepository, emailSender email.Sender, baseURL string, ) *ReminderService
NewReminderService initializes reminder service with email sender and repository dependencies
func (*ReminderService) GetReminderHistory ¶
func (s *ReminderService) GetReminderHistory(ctx context.Context, docID string) ([]*models.ReminderLog, error)
GetReminderHistory retrieves complete email send log with success/failure tracking
func (*ReminderService) GetReminderStats ¶
func (s *ReminderService) GetReminderStats(ctx context.Context, docID string) (*models.ReminderStats, error)
GetReminderStats retrieves aggregated reminder metrics for monitoring dashboard
func (*ReminderService) SendReminders ¶
func (s *ReminderService) SendReminders( ctx context.Context, docID string, sentBy string, specificEmails []string, docURL string, locale string, ) (*models.ReminderSendResult, error)
SendReminders dispatches email notifications to all or selected pending signers with result aggregation
type SignatureService ¶
type SignatureService struct {
// contains filtered or unexported fields
}
SignatureService orchestrates signature creation with Ed25519 cryptography and hash chain linking
func NewSignatureService ¶
func NewSignatureService(repo repository, docRepo documentRepository, signer cryptoSigner) *SignatureService
NewSignatureService initializes the signature service with repository and cryptographic signer dependencies
func (*SignatureService) CheckUserSignature ¶
func (s *SignatureService) CheckUserSignature(ctx context.Context, docID, userIdentifier string) (bool, error)
CheckUserSignature verifies signature existence using flexible identifier matching (email or OAuth subject)
func (*SignatureService) CreateSignature ¶
func (s *SignatureService) CreateSignature(ctx context.Context, request *models.SignatureRequest) error
CreateSignature validates user authorization, generates cryptographic proof, and chains to previous signature
func (*SignatureService) GetDocumentSignatures ¶
func (s *SignatureService) GetDocumentSignatures(ctx context.Context, docID string) ([]*models.Signature, error)
GetDocumentSignatures retrieves all cryptographic signatures associated with a document for public verification
func (*SignatureService) GetSignatureByDocAndUser ¶
func (s *SignatureService) GetSignatureByDocAndUser(ctx context.Context, docID string, user *models.User) (*models.Signature, error)
GetSignatureByDocAndUser retrieves a specific signature record for verification or display purposes
func (*SignatureService) GetSignatureStatus ¶
func (s *SignatureService) GetSignatureStatus(ctx context.Context, docID string, user *models.User) (*models.SignatureStatus, error)
GetSignatureStatus checks if a user has already signed a document and returns signature timestamp if exists
func (*SignatureService) GetUserSignatures ¶
func (s *SignatureService) GetUserSignatures(ctx context.Context, user *models.User) ([]*models.Signature, error)
GetUserSignatures retrieves all documents signed by a specific user for personal dashboard display
func (*SignatureService) RebuildChain ¶
func (s *SignatureService) RebuildChain(ctx context.Context) error
RebuildChain recalculates and updates prev_hash pointers for existing signatures during migration
func (*SignatureService) SetChecksumConfig ¶
func (s *SignatureService) SetChecksumConfig(cfg *config.ChecksumConfig)
SetChecksumConfig sets the checksum configuration for document verification
func (*SignatureService) VerifyChainIntegrity ¶
func (s *SignatureService) VerifyChainIntegrity(ctx context.Context) (*ChainIntegrityResult, error)
VerifyChainIntegrity validates the cryptographic hash chain across all signatures for tamper detection
type WebhookPublisher ¶
type WebhookPublisher struct {
// contains filtered or unexported fields
}
WebhookPublisher publishes events to active webhooks via delivery queue
func NewWebhookPublisher ¶
func NewWebhookPublisher(repo webhookRepo, deliveries webhookDeliveryRepo) *WebhookPublisher