Giter VIP home page Giter VIP logo

notify-service's Introduction

Flake8 Status Helm Chart Lint and Test License: MIT

notify-service

Notify service with multiple supported target

This is a backend service build with FastAPI.

Requirement

  • Python 3.8
  • Pipenv
  • Podman, buildah on Linux host
  • Helm 3
  • Redis

Check Pipfile for python packages.

Deploy with Helm

IMAGE ALT TEXT HERE

Update Helm chart value

Make a copy of the chart/values.yaml, e.g. dev.value.yaml and update.

Update api key:

apiKeyValue: The API key to authenticate and access the apis, you could generate one with cmd `$openssl rand -hex 32`

SMTP related config:

smtp.endpoint.enableTls: default to True
smtp.endpoint.port: int, required
smtp.endpoint.host: str, required
smtp.endpoint.user: str, optional
smtp.endpoint.password: str, optional

Email related config:

fromName: str, service name, e.g. Notify Service
fromEmail: str, the email from

Chat Webhook URL:

chatWebhook.enabled: boolen, enable or disable chat webhook
chatWebhook.gchat: str, Google Chat room webhook
chatWebhook.slack: str, Slack room webhook

ActiveMQ message bus:

activeMQ.enabled: boolen, enable or disable ActiveMQ message bus config
activeMQ.cert_mount_path: str, specify where the certs will be mounted in the container
activeMQ.ca_certs: multiline str, the CA server certificate
activeMQ.client_cert: multiline str, the message bus client certificate
activeMQ.client_key: multiline str, the message bus client key
activeMQ.msg_bus_host_1: str, the message bus host name
activeMQ.msg_bus_host_1: int, the message bus host port
activeMQ.msg_bus_host_2: str, optional, the second message bus host name
activeMQ.msg_bus_host_2: int, optional, the second message bus host port

IRC config:

irc.enabled: boolen, enable or disable IRC config
irc.server: str, IRC host name
irc.port: int, the IRC host port
irc.ssl: boolen, enable or disable ssl, make sure set the right port if is enabled
irc.nickname: str, IRC username
irc.password: str, set if password exist
irc.default_target: str, the default channel name start with '#' or username

Persistent volume config:

persistence.enabled: boolen, true or false
persistence.subPath: str, sub path
persistence.existingClaim, str, using existing pvc
persistence.accessMode: str, ReadWriteOnce, ReadWriteMany or ReadOnlyOnce
persistence.size: str, volume size, e.g. 1G
persistence.storageClass: str, storage class name
persistence.VolumeName: str, volume name

If deploy to Openshift (default) update OpenShift route url:

openshift.enabled: boolen, true or false
openshift.hosts: str, the full app host name

or else update the ingress part.

Run helm install

Make sure you have login your cluster, run with updated chart values:

$ helm install ns chart/ -f dev.value.yaml

After deploy done access the app Swagger UI:

http://${ openshift.hosts }:8080/docs

And Redoc UI with different code examples:

http://${ openshift.hosts }:8080/redoc

Request body template and samples

For each API, both Swagger UI and Redoc UI provide request body schema, while Redoc UI with more details and provide drop list with different supported schemas and details.

Check sample dir under doc for some request body with the matching template names under app/templates/build or app/templates/src.

Development

For develop, build, test and debug, please check Development Doc for more info.

Contributing

You can contribute by:

  • Raising any issues you find using notify-service
  • Fixing issues by opening Pull Requests
  • Submitting a patch or opening a PR
  • Improving documentation
  • Talking about notify-service

All bugs, tasks or enhancements are tracked as GitHub issues.

CI

The Github Action will run flake8 against .py files.

notify-service's People

Contributors

waynesun09 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.