A telegram bot to generate OTPs
Project description
Yet Another OTP Bot
A Telegram Bot to generate OTPs.
Architecture
Software
Yaotpbot is written in Python and use telegram-bot-api to interact with Telegram.
Infrastructure
A DynamoDB table it's used to store the identifiers of the chats and all the related seeds, needed to generate OTPs. All those information are stored encrypted and just decrpyted at runtime, using dynamodb-encryption-sdk
library with AES encryption.
Deployment
CI/CD is automated with GitOps. in particular:
- The pipeline
- Builds the artifact and publishes it on Pypi;
- Builds the container using buildx to support multiple architecture and push the images on GitLab container registry.
- The operator deploys and keep synced the manifests created on a local k3s cluster.
Installation and usage
The bot can either be used as a container (registry) or installed directly with pip
running
pip3 install --upgrade yaotpbot
Note that following environment variables must be set:
Name | Description |
---|---|
TELEGRAM_API_TOKEN | Telegram Api Token of your bot needed to interact with Telegram. You always get a new one when creating a new bot. |
DYNAMO_DB_ENDPOINT | A custom DynamoDB endpoint when not using AWS. By default the bot looks for a table called yaotpbot-table using the credentials provided. |
DYNAMO_AES_SIGN_KEY | Key used to sign encrypted data stored on DynamoDB. Can be generated running python scrips/keys.py |
DYNAMO_AES_ENCRYPTION_KEY | Key used to encrypt data stored on DynamoDB. Can be generated running python scrips/keys.py |
AWS_ACCESS_KEY_ID | AWS access key id. Used with AWS_SECRET_ACCESS_KEY to interact with DynamoDB. |
AWS_SECRET_ACCESS_KEY | AWS secret access key. Used with AWS_ACCESS_KEY_ID to interact with DynamoDB. |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file yaotpbot-0.0.9.tar.gz
.
File metadata
- Download URL: yaotpbot-0.0.9.tar.gz
- Upload date:
- Size: 52.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fe84ff4abc3d7cb0d4d1c02e545928ff8fbe7e52fff66e4fbbfc0b070be06bf |
|
MD5 | e03fe57fb024ec1798bca7d5919a695b |
|
BLAKE2b-256 | 93c3f37f8b1560f311fd6d4969f587ab02586e909fac032834d7d08b47634c0c |
File details
Details for the file yaotpbot-0.0.9-py3-none-any.whl
.
File metadata
- Download URL: yaotpbot-0.0.9-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab5f446826938ba5c115c2f639164a7086bbe099e5f92595f9d0b06ecbde65dc |
|
MD5 | a932a992f6b3a3c0601cd18e5a413fcf |
|
BLAKE2b-256 | cd18cd7842bc866986f5fa153f6a9c1309f6a0619058c39d6cb6c143b1cf52e5 |