Skip to content
@awakari

awakari

Follow your interest

Contents

  1. Overview
  2. Concepts
  3. Access
  4. Usage
  5. Design
  6. Additional Information

1. Overview

Awakari is an events filter. The purpose is to allow users to follow their interests instead of subjective sources.

2. Concepts

As a publish/subscribe service it works with events and interest subscriptions. Awakari performs a continuous prospective search capturing relevant events in the events stream on the fly.

2.1. Matching Condition

A condition represents a message matching criteria. Currently, Awakari supports the following condition types:

  • text matching
  • numeric comparison (<, ≤, =, ≥, >)
  • groups of nested condtions with logic (And, Or, Xor)

Any condition may be negative ("Not"). The matching is structured by design: text and numeric conditions may be used to match a certain attribute of an event.

2.2. Interest

Interest is a set of matching conditions associated with a specific user. Internally interest is named subscription.

2.3. Event

The entity being routed and delivered by Awakari. The accepted format is Cloud Events. There are multiple source integrations, producing events from:

  • Web feeds (like RSS)
  • Fediverse publishers
  • Telegram channels

3. Access

Using the Awakari cloud API requires mutual TLS authentication and encryption to secure all client data. Hence, to access the cloud API it's necessary to have a client certificate.

Prepare own client certificate request:

openssl req -new -newkey rsa:4096 -nodes \
  -keyout client.key \
  -out client.csr \
  -addext "subjectAltName=DNS:api.awakari.com" \
  -subj '/CN=group0.company1.com'

Warning Never specify additional certificate attributes like "O", "OU", etc. The resulting DN should not contain commas.

Then request the client certificate (currently by email).

4. Usage

TODO

5. Design

5.1. Data Schema

Attribute Type Description Known Usage
author string 1st author info, name and email set by source-feeds
awakarigroupid string group id set by resolver from the "X-Awakari-Group-Id" gRPC header
awakarimatchfound bool internal, set and used by resolver
awakariregistered bool internal, set and used by resolver
awakarispanid string tracing span id set and used by core components when tracing is enabled
awakaritraceid string trace id set and used by core components when tracing is enabled
awakariuserid string user id set by resolver from the "X-Awakari-User-Id" gRPC header, removed by reader
categories string space-separated item categories set by source-feeds, pub wizard
contact string Contact info to reply set by pub wizard
currency string Currency, USD, EUR, ... set by pub wizard
data string event payload, mostly text set by any source, may be empty
feedcategories string space-separated feed categories set by source-feeds
feeddescription string set by source-feeds
feedimagetitle string set by source-feeds
feedimageurl uri set by source-feeds
feedtitle string set by source-feeds
feedurl uri set by source-feeds
id string event id set by any source to a unique value
imagetitle string set by source-feeds
imageurl uri set by source-feeds
language string set by source-feeds
latitude string Location Latitude set by various sources
longitude string Location Longitude set by various sources
pricemax string Max total price set by pub wizard
pricemin string Min total price set by pub wizard
quantitymax string Max quantity set by pub wizard
quantitymin string Min quantity set by pub wizard
quantityunit string Quantity units, may be empty set by pub wizard
source string bot-telegram: "@AwakariBot", others: source link URL
specversion string meaningless, always "1.0"? set by any source
subject string source-feeds: RSS item guid, source-sites: site URL
summary string set by source-feeds
tags string space separated tags set by pub wizard
tgfileid string telegram file id set and used by bot-telegram
tgfileimgheight int32 telegram image height set and used by bot-telegram
tgfileimgwidth int32 telegram image width set and used by bot-telegram
tgfilemediaduration int32 telegram media duration set and used by bot-telegram
tgfiletype int32 telegram file type set and used by bot-telegram
tgfileuniqueid string telegram file unique id set and used by bot-telegram
tgmessageid string telegram message id internal, set by bot-telegram
time timestamp set by any source
title string set by source-feeds, pub wizard
type string various values set by any source, pub wizard

6. Additional Information

Popular repositories Loading

  1. core core Public

    Core Awakari system deployment and tests

    Go 7

  2. producer-rss producer-rss Public archive

    Producer implementation sourcing the messages from the RSS updates

    Go 1

  3. ALL-about-RSS ALL-about-RSS Public

    Forked from AboutRSS/ALL-about-RSS

    A list of RSS related stuff: tools, services, communities and tutorials, etc.

    SCSS 1

  4. awesome-telegram awesome-telegram Public

    Forked from ebertti/awesome-telegram

    Collection great groups, channels, bots and libraries for Telegram

    1

  5. .github .github Public

    Documentation

  6. client-sdk-go client-sdk-go Public

    Awakari Golang Client SDK library

    Go

Repositories

Showing 10 of 13 repositories
  • webapp Public

    Reference Web UI

    awakari/webapp’s past year of commit activity
    HTML 0 AGPL-3.0 0 0 0 Updated Aug 22, 2024
  • core Public

    Core Awakari system deployment and tests

    awakari/core’s past year of commit activity
    Go 7 AGPL-3.0 0 0 0 Updated Aug 16, 2024
  • bot-telegram Public

    Telegram Bot

    awakari/bot-telegram’s past year of commit activity
    Go 0 AGPL-3.0 1 0 0 Updated Aug 14, 2024
  • int-activitypub Public

    ActivityPub Integration

    awakari/int-activitypub’s past year of commit activity
    Go 0 AGPL-3.0 0 0 0 Updated Aug 14, 2024
  • client-sdk-go Public

    Awakari Golang Client SDK library

    awakari/client-sdk-go’s past year of commit activity
    Go 0 MIT 0 0 0 Updated Jul 1, 2024
  • .github Public

    Documentation

    awakari/.github’s past year of commit activity
    0 0 0 0 Updated Jun 15, 2024
  • awesome-search Public Forked from frutik/awesome-search

    Awesome Search - this is all about the (e-commerce, but not only) search and its awesomeness

    awakari/awesome-search’s past year of commit activity
    HTML 0 112 0 0 Updated Mar 3, 2024
  • awesome-telegram Public Forked from ebertti/awesome-telegram

    Collection great groups, channels, bots and libraries for Telegram

    awakari/awesome-telegram’s past year of commit activity
    1 117 0 0 Updated Mar 3, 2024
  • ALL-about-RSS Public Forked from AboutRSS/ALL-about-RSS

    A list of RSS related stuff: tools, services, communities and tutorials, etc.

    awakari/ALL-about-RSS’s past year of commit activity
    SCSS 1 CC-BY-4.0 181 0 0 Updated Feb 27, 2024
  • homepage Public archive
    awakari/homepage’s past year of commit activity
    HTML 0 0 0 0 Updated Dec 20, 2023

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Most used topics

Loading…