Skip to content

komunitin/komunitin-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

117 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Komunitin API

Disclaimer: This is a work in progress with the primary goal to be used as a starting point for further discussion. Comments are very welcome as GitHub issues or direct email contact at [email protected].

The Komunitin API system is divided in several modules:

Accounting protocol

The accounting protocol module features financial transactions and federation of nodes.

See the Accounting protocol Readme for details and specification.

Social API

The Social API provides the endpoints related to the marketplace service in an exchange community beyond payments. This is details about people, buisinesses and exchange groups, offers and needs, posts, etc. The main goal of this module is to allow apps to discover and travel all this social information.

See the Komunitin Social API Readme for the details and specification.

Notifications API

The Notifications API allow an end-user app or a federated server to subscribe for push notifications so it can keep on sync with the events they are interested on.

See the Komunitin Notifications Readme for details and specification.

Authorization

The authorization management (login, forgot password, etc) is out of the scope of the API, and will be provided by a third party Identity Access Management (IAM) system using the OpenID Connect protocol over OAuth2. For mobile and web apps, it is recommended to use the OAuth2 Authorization Code Flow with Proof Key for Code Exchange (PKCE). There open source IAM platforms such as Keycloak as well as IAM-as-a-service providers.

Media

Binary files upload and download management is out of the scope of this API, and will be provided by a third party service. This way we can enable advanced features like upload and download resumes and effective caching on delivery. Files should be isolated in different pools depending on the exchange group.

Federation

The federation of exchange system servers for the Community part is accomplished by letting remote servers to subscribe for push notifications. They will be therefore warned when new content is available and then they will be able to retrieve the new content using the regular community API.

Note that servers may trigger notifications based on content they just got from other servers but since the content is always retrieved from the original server through HTTPS, it may not be tampered in the way.

In order to link resources from different servers in a consistent matter, it has been defined a JSON:API extension: External Relationships.

The federation for the payments is an integral part of the Accounting protocol.

About

HTTP API for exchange communities

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors