Pass-It-On
A library that provides simple notification client and server that receives messages and passes them on to endpoints.
Key Features
- A configurable server that monitors interfaces and passes notifications to endpoints.
- A configurable client to use as part of a binary to send notifications to the server.
- Traits to support extension of Interfaces and their inclusion in the configuration file.
- Interface
- InterfaceConfig
- Traits to support extension of Endpoints and their inclusion in the configuration file.
- Endpoint
- EndpointConfig
Interfaces
Interfaces can be used for both the server and the client.
Interface | Description |
---|---|
HTTP | Communication using the HTTP protocol. |
Pipe | Communication using a FIFO Named Pipe. (Unix Only) |
Endpoints
Endpoints are the destinations for notifications received by the server.
Endpoint | Description |
---|---|
Regular File | Write notifications to a file. |
Matrix | Send notifications to Matrix room(s). |
Configuration
The Server and Client support configuration via a TOML file. At least one interface must be setup for a Client and at least one interface and endpoint must be setup for the Server.
Server Configuration Example
[]
= "sdfsf4633ghf44dfhdfhQdhdfhewaasg"
[[]]
= "pipe"
= '/path/to/pipe.fifo'
= true
[[]]
= "http"
= 8080
[[]]
= "matrix"
= "example.com"
= "test1"
= "pass"
= '/path/to/session/store/matrix_store'
= "storepass123"
[[]]
= "!dfsdfsdf:example.com"
= ["notification_id1", "notification_id2"]
[[]]
= "#matrix-room:example.com"
= ["notification_id4"]
[[]]
= "file"
= '/test_data/file_endpoint.txt'
= ["notification_id1", "notification_id3"]
Client Configuration Example
[]
= "sdfsf4633ghf44dfhdfhQdhdfhewaasg"
[[]]
= "pipe"
= '/path/to/pipe.fifo'
= true
[[]]
= "http"
= "192.168.1.2"
= 8080
Feature Flags
Feature | Description |
---|---|
client | Enables the client but not any particular interface. |
endpoints | Enables the Endpoint and EndpointConfig traits. |
file | Enables the regular file endpoint. |
http | Enables the HTTP interface client and server. |
http-client | Enables the HTTP interface for just client. |
http-server | Enables the HTTP interface for just server. |
interfaces | Enables the Interface and InterfaceConfig traits. |
matrix | Enables the matrix endpoint. |
pipe | Enables the named pipe interface client and server |
pipe-client | Enables the named pipe interface client. |
pipe-server | Enables the named pipe interface server. |
server | Enables the server but not any particular interface or endpoint. |
server-bin | Enables the building of the provided pass-it-on-server server binary while not require any specific interface or endpoint |