panorama/docs/daemon/api.md

1.2 KiB

Daemon API

To communicate with the daemon start by connecting to the socket it exposes. This opens a long-lasting connection that can be used to send RPC messages.

Authentication

If connecting over a network rather than a socket, the client should authenticate in order to talk to panorama at all. The framework for this is TLS client authentication.

Namespace panorama::auth

TODO:

Standard API

Namespace panorama::mail

listen-receive

(account : Option<String>) -> Stream<MessageNotification>

Begin subscribing to when mail is received for a particular account if provided, or all accounts by default.

send

(message : SendMessage) -> Result<()>

Send an email. If the send fails the result is returned immediately without retry.

TODO: send with retry?

(query : StructuredQuery) -> Result<SearchResultPage>

Search for messages, returns a summary of messages + first sentence.

Extensions

Since extensions may be separate processes, they must also communicate with the daemon, but since the daemon is responsible for launching them, they don't have to connect to the socket explicitly.

Namespace panorama::extensions