Cic notify build

This commit is contained in:
2021-02-07 02:29:24 +00:00
parent 85f06aa445
commit cebdb24ed6
61 changed files with 1650 additions and 27 deletions

View File

@@ -0,0 +1,5 @@
all: html
.PHONY: html
html:
makeinfo --html --output html index.texi

View File

@@ -0,0 +1,14 @@
@node API
@chapter API
A setuptools file is provided to install @code{cic-notify} as a normal python package.
A single Python API method is provided so far:
@itemize @code
@item sms(recipient, content)
@end itemize
@code{recipient} is a string with phone number in @code{msisdn} format with a @code{+} prefix.
@code{content} is a UTF-8 string containing the message to be sent.

View File

@@ -0,0 +1,61 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Released 2020 under GPL3 -->
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>API (Grassroots Economics CIC notify 0.2.0)</title>
<meta name="description" content="API (Grassroots Economics CIC notify 0.2.0)">
<meta name="keywords" content="API (Grassroots Economics CIC notify 0.2.0)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html" rel="start" title="Top">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html" rel="up" title="Top">
<link href="Run.html" rel="prev" title="Run">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<span id="API"></span><div class="header">
<p>
Previous: <a href="Run.html" accesskey="p" rel="prev">Run</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
<hr>
<span id="API-1"></span><h2 class="chapter">4 API</h2>
<p>A single Python API method is provided so far:
</p>
<ul class="no-bullet">
<li> sms(recipient, content)
</li></ul>
<p><code>recipient</code> is a string with phone number in <code>msisdn</code> format with a <code>+</code> prefix.
</p>
<p><code>content</code> is a UTF-8 string containing the message to be sent.
</p>
</body>
</html>

View File

@@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Released 2020 under GPL3 -->
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Overview (Grassroots Economics CIC notify 0.2.0)</title>
<meta name="description" content="Overview (Grassroots Economics CIC notify 0.2.0)">
<meta name="keywords" content="Overview (Grassroots Economics CIC notify 0.2.0)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html" rel="start" title="Top">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html" rel="up" title="Top">
<link href="Setup.html" rel="next" title="Setup">
<link href="index.html" rel="prev" title="Top">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<span id="Overview"></span><div class="header">
<p>
Next: <a href="Setup.html" accesskey="n" rel="next">Setup</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
<hr>
<span id="Overview-1"></span><h2 class="chapter">1 Overview</h2>
<p>This system is in early stages of development. It is intended to be a flexible notification broker where additional notification targets easily can be plugged in.
</p>
<p>The framework is designed to asynchronously execute all tasks belonging to a specific context, based on the name of the task.
</p>
<p>Currently, only handlers for <strong>sms</strong> notifications are implemented. Any task with a <code>notify.sms.</code> prefix registered in the celery task worker pool will be executed upon the high-level &quot;send sms&quot; task.
</p>
<p>Similary, any other notification category can be implemented. e.g. <code>notify.email.</code>, <code>notify.telegram.</code>, <code>notify.mattermost.</code> etc.
</p>
<span id="Contents"></span><h3 class="section">1.1 Contents</h3>
<p>The only implementations so far are three <code>sms</code> notification tasks:
</p>
<ul>
<li> log (as in python logger, thus more or less noop)
</li><li> db (postgres)
</li><li> Africas Talking API
</li></ul>
<p><strong>NOTE</strong>: The Africas Talking API will be removed from the suite, and provided as an add-on package down the road. It will illustrate how to include arbitrary tasks to a asynchronous group of notification targets.
</p>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Released 2020 under GPL3 -->
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Run (Grassroots Economics CIC notify 0.2.0)</title>
<meta name="description" content="Run (Grassroots Economics CIC notify 0.2.0)">
<meta name="keywords" content="Run (Grassroots Economics CIC notify 0.2.0)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html" rel="start" title="Top">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html" rel="up" title="Top">
<link href="API.html" rel="next" title="API">
<link href="Setup.html" rel="prev" title="Setup">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<span id="Run"></span><div class="header">
<p>
Next: <a href="API.html" accesskey="n" rel="next">API</a>, Previous: <a href="Setup.html" accesskey="p" rel="prev">Setup</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
<hr>
<span id="Running-the-Application"></span><h2 class="chapter">3 Running the Application</h2>
<p>A convenience task runner is provided in <samp>scripts/cic-notify-tasker.py</samp>.
</p>
</body>
</html>

View File

@@ -0,0 +1,64 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Released 2020 under GPL3 -->
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Setup (Grassroots Economics CIC notify 0.2.0)</title>
<meta name="description" content="Setup (Grassroots Economics CIC notify 0.2.0)">
<meta name="keywords" content="Setup (Grassroots Economics CIC notify 0.2.0)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html" rel="start" title="Top">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html" rel="up" title="Top">
<link href="Run.html" rel="next" title="Run">
<link href="Overview.html" rel="prev" title="Overview">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<span id="Setup"></span><div class="header">
<p>
Next: <a href="Run.html" accesskey="n" rel="next">Run</a>, Previous: <a href="Overview.html" accesskey="p" rel="prev">Overview</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
<hr>
<span id="Setup-1"></span><h2 class="chapter">2 Setup</h2>
<span id="Handlers"></span><h3 class="section">2.1 Handlers</h3>
<p>Notification tasks in this package are intended to be loaded dynamically, making no assumptions on which handlers that should be connected to the different tasks. The tasks provided are:
</p>
<ul>
<li> <strong>notify.sms.log</strong>: (none)
</li><li> <strong>notify.sms.db</strong>: Postgresql, along with python packages alembic, SQLAlchemy and psycopg2.
</li><li> <strong>notify.sms.africastalking</strong>: africastalking python package.
</li></ul>
</body>
</html>

View File

@@ -0,0 +1,94 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Released 2020 under GPL3 -->
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Top (Grassroots Economics CIC notify 0.2.0)</title>
<meta name="description" content="Top (Grassroots Economics CIC notify 0.2.0)">
<meta name="keywords" content="Top (Grassroots Economics CIC notify 0.2.0)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Overview.html" rel="next" title="Overview">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">Grassroots Economics CIC notify 0.2.0</h1>
<span id="SEC_Contents"></span>
<h2 class="contents-heading">Table of Contents</h2>
<div class="contents">
<ul class="no-bullet">
<li><a id="toc-Overview-1" href="Overview.html#Overview">1 Overview</a>
<ul class="no-bullet">
<li><a id="toc-Contents" href="Overview.html#Contents">1.1 Contents</a></li>
</ul></li>
<li><a id="toc-Setup-1" href="Setup.html#Setup">2 Setup</a>
<ul class="no-bullet">
<li><a id="toc-Handlers" href="Setup.html#Handlers">2.1 Handlers</a></li>
</ul></li>
<li><a id="toc-Running-the-Application" href="Run.html#Run">3 Running the Application</a></li>
<li><a id="toc-API-1" href="API.html#API">4 API</a></li>
</ul>
</div>
<span id="Top"></span><div class="header">
<p>
&nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
<hr>
<span id="Grassroots-Economics-CIC-ETH"></span><h1 class="top">Grassroots Economics CIC ETH</h1>
<p>This document describes microservices that broker external notifications from the CIC network
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="Overview.html" accesskey="1">Overview</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Setup.html" accesskey="2">Setup</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Run.html" accesskey="3">Running the Application</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="API.html" accesskey="4">API</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<div class="header">
<p>
&nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,28 @@
\input texinfo
@settitle Grassroots Economics CIC notify 0.2.0
@copying
Released 2020 under GPL3
@end copying
@titlepage
@title Community Inclusion Currency Network
@author Louis Holbrook
@end titlepage
@c
@contents
@ifnottex
@node Top
@top Grassroots Economics CIC ETH
This document describes microservices that broker external notifications from the CIC network
@end ifnottex
@include overview.texi
@include setup.texi
@include run.texi
@include api.texi

View File

@@ -0,0 +1,22 @@
@node Overview
@chapter Overview
This system is in early stages of development. It is intended to be a flexible notification broker where additional notification targets easily can be plugged in.
The framework is designed to asynchronously execute all tasks belonging to a specific context, based on the name of the task.
Currently, only handlers for @strong{sms} notifications are implemented. Any task with a @code{notify.sms.} prefix registered in the celery task worker pool will be executed upon the high-level "send sms" task.
Similary, any other notification category can be implemented. e.g. @code{notify.email.}, @code{notify.telegram.}, @code{notify.mattermost.} etc.
@section Contents
The only implementations so far are three @code{sms} notification tasks:
@itemize
@item log (as in python logger, thus more or less noop)
@item db (postgres)
@item Africas Talking API
@end itemize
@strong{NOTE}: The Africas Talking API will be removed from the suite, and provided as an add-on package down the road. It will illustrate how to include arbitrary tasks to a asynchronous group of notification targets.

View File

@@ -0,0 +1,4 @@
@node Run
@chapter Running the Application
A convenience task runner is provided in @file{scripts/cic-notify-tasker.py}.

View File

@@ -0,0 +1,17 @@
@node Setup
@chapter Setup
@section Handlers
Notification tasks in this package are intended to be loaded dynamically, making no assumptions on which handlers that should be connected to the different tasks. The tasks provided are:
@itemize
@item
@strong{notify.sms.log}: (none)
@item
@strong{notify.sms.db}: Postgresql, along with python packages alembic, SQLAlchemy and psycopg2.
@item
@strong{notify.sms.africastalking}: africastalking python package.
@end itemize