Skip to content

interfacerproject/zenflows-inbox

 
 

Repository files navigation

ZENFLOWS INBOX

Simple HTTP inbox for interfacer-gui

Zenflows INBOX

Federated simple inbox for interfacer-gui

Building the digital infrastructure for Fab Cities


Interfacer project

What is INTERFACER?

The goal of the INTERFACER project is to build the open-source digital infrastructure for Fab Cities.

Our vision is to promote a green, resilient, and digitally-based mode of production and consumption that enables the greatest possible sovereignty, empowerment and participation of citizens all over the world. We want to help Fab Cities to produce everything they consume by 2054 on the basis of collaboratively developed and globally shared data in the commons.

To know more DOWNLOAD THE WHITEPAPER

Zenflows INBOX Features

  • Federated architecture
  • Distributed over tarantool
  • Solid crypto provided by zenflows-crypto


💾 Install

For the deployment see the subdirectory devops, there is an ansible role. It is also available a Dockerfile and a docker-compose.yml.

🔝 back to top


🎮 Quick start

All request have to be signed with the private key of the sender (in /send) or receiver (in /read) agent with zenflows-crypto and the signature has to be put in the HTTP request in the header zenflows-sign.

POST /send

Send content to a list of receivers.

Parameters

Name Required Type Description
sender required ULID The sender is the ID (of the agent in zenflows as string)
receivers required ULID[] The receivers is a list of the IDs of the agent (as strings) that should receive the message.
content required json The content is saved as JSON inside a postgresql field, when an agent want to see his messages has to make a call to read;

POST /read

Read content for a specific agent.

Parameters

Name Required Type Description
receiver required ULID The receiver is the ID (as string) of the agent we want to read the messages of
request_id required number request_id is a random value, in the response the inbox service will put the same value in the receiver_id.
only_unread optional boolean There could be a third field only_unread that return only the messages for which the read flag is false;

POST /set-read

Mark a specific content as read or unread.

Name Required Type Description
message_id required ULID The message is the ID (as string) of the message we want to set status of
receiver required ULID The receiver is the ID (as string) of the agent we want to set status of
read optional boolean The read flag tells if the receiver has read (or not) the message. (Implement the read/unread feature);

POST /count-unread

Returns the number of messages with the read flag set to false.

Name Required Type Description
receiver required ULID The receiver is the ID (as string) of the agent we want to count the unread messages

🔝 back to top


🐋 Docker

Please refer to DOCKER PACKAGES

🔝 back to top


📋 Testing

See subdirectory examples

🔝 back to top


😍 Acknowledgements

Copyleft (ɔ) 2023 by Dyne.org foundation, Amsterdam

Designed, written and maintained by Alberto Lerda With contributions of Ennio Donato and Puria Nafisi Azizi

🔝 back to top


🌐 Links

https://www.interfacer.eu/

https://dyne.org/

🔝 back to top


👤 Contributing

  1. 🔀 FORK IT
  2. Create your feature branch git checkout -b feature/branch
  3. Commit your changes git commit -am 'Add some fooBar'
  4. Push to the branch git push origin feature/branch
  5. Create a new Pull Request
  6. 🙏 Thank you

🔝 back to top


💼 License

Zenflows INBOX - Federated simple **inbox** for interfacer-gui
Copyleft (ɔ) 2023 Dyne.org foundation

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

🔝 back to top

About

Simple HTTP inbox for zenflows gui

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Go 84.3%
  • Lua 9.6%
  • Dockerfile 2.8%
  • Makefile 1.9%
  • Jinja 1.4%