Skip to content

Latest commit

 

History

History
42 lines (33 loc) · 1.19 KB

File metadata and controls

42 lines (33 loc) · 1.19 KB

Enterprise Content Management (ECM)

pyfly.ecm provides hexagonal abstractions for document storage, metadata, folders and e-signature workflows.

Document upload / download

from pyfly.ecm import (
    DocumentService, LocalFilesystemStorageAdapter,
)
from pyfly.ecm.in_memory import InMemoryFolderRepository, InMemoryMetadataStorage

service = DocumentService(
    storage=LocalFilesystemStorageAdapter("/var/firefly/docs"),
    metadata=InMemoryMetadataStorage(),
    folders=InMemoryFolderRepository(),
)

doc = await service.upload(name="contract.pdf", content=pdf_bytes, content_type="application/pdf")
content = await service.download(doc.id)

E-signature

from pyfly.ecm import (
    ESignatureService, NoOpESignatureAdapter, Recipient, SignatureRequest,
)

service = ESignatureService(adapter=NoOpESignatureAdapter())
envelope = await service.request(
    SignatureRequest(
        document_id=doc.id,
        recipients=[Recipient(name="Alice", email="alice@example.com")],
        subject="Please sign your contract",
    ),
)

Replace NoOpESignatureAdapter with a real provider (DocuSign, Adobe Sign, Logalty) by implementing the ESignatureAdapter protocol.