Skip to main content

A utility package for kolomoni agency banking microservices

Project description

# Shared Python Utilities

== Custom Auth Service

In order to use the Custom Auth Middleware, kindly set the following

[source,bash]
---
poetry add pykolofinance
---

[source,bash]
---
pip install pykolofinance
---
[source,bash]
---
AUTH_SERVICE_BASE_URL=
---


## Usage
1. Install the package

[source,bash]
---
poetry add pykolofinance
---

2. Add `pykolofinance` to installed apps in django
3. update `REST_FRAMEWORK` settings as showing below

[source,python]
---
REST_FRAMEWORK = {
...
# 'DATE_INPUT_FORMATS': ["%d/%m/%Y", ],
'DEFAULT_AUTHENTICATION_CLASSES': (
"pykolofinance.authentication.CustomJWTAuthentication",
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
...
}
---

=== Manage Migrations
Whenever you make changes to models, you need to generate migrations locally before pushing your code to the repo. In order to generate migrations, kindly run the following command in another terminal window while your main app is also running


== Logging

The service includes a middleware that logs both requests and responses to Elasticsearch (ELK). To enable logging, specify the `ELK_LOGGER_URL` in your environment variables.

=== Configuration

Ensure your `.env` file includes the following:

[source,bash]
----
ELK_LOGGER_URL=https://your-elasticsearch-url:9200
----

=== Middleware Integration

The logging middleware is already integrated into the application. It captures API interactions and stores them in Elasticsearch for monitoring and analysis.

=== Skip URL Name

You can skip logging for specific API endpoints by setting `API_LOGGER_SKIP_URL_NAME` in your `settings.py`. Example:

[source,python]
----
API_LOGGER_SKIP_URL_NAME = ['url_name1', 'url_name2']
----

=== Skip Namespace

Skip logging for entire apps by specifying their namespaces in `API_LOGGER_SKIP_NAMESPACE` in your `settings.py`. Example:

[source,python]
----
API_LOGGER_SKIP_NAMESPACE = ['APP_NAMESPACE1', 'APP_NAMESPACE2']
----

=== Exclude http request methods from being logged ?(Optional)

You can exclude selected https methods by specifying `API_LOGGER_EXCLUDE_HTTP_METHODS` in settings.py. By default all GET request are excluded from being logged
[source,python]
----
API_LOGGER_EXCLUDE_HTTP_METHODS = ['GET', 'PATCH']
----

=== Hide Sensitive Data From Logs

To prevent sensitive information from appearing in the logs, configure `API_LOGGER_EXCLUDE_KEYS` in your `settings.py` with a list of sensitive keys. By default, the following keys are excluded:

[source,python]
----
API_LOGGER_EXCLUDE_KEYS = ['password', 'token', 'access', 'refresh']
# Sensitive data will be replaced with "***FILTERED***".
----

= KYC

== 1. Verification

The service includes a KYC verification service. There are three verification types:

. BVN
. NIN
. BVN_SELFIE

We currently have two providers:

. MOCK
. DOJAH

By default, the provider is set to MOCK. To override the default value, set `PYKOLO_DEFAULT_IDENTITY_SERVICE` in your settings file to your preferred provider:

[source,python]
----
PYKOLO_DEFAULT_IDENTITY_SERVICE = "DOJAH"
----

Please note that when you switch the provider to DOJAH, you are required to set `DOJAH_API_URL`, `DOJAH_APP_ID`, and `DOJAH_API_KEY` in your settings.py file. Please note that the DOJAH API URL must be without a trailing slash `/`.

[source,python]
----
from pykolofinance.kyc.verifier import get_identity_data

identity_data = get_identity_data(identity_type, identity_number, image=None, user_id=None)
----

Note that an image is required while verifying BVN_SELFIE.





.Table Contributors
|===
|Name |Role |Email
|Daniel Ale |SA |d.ale@capitalsage.ng
|Isaiah Aimiton |BE |i.aimiton@capitalsage.ng
|===
[quote]
____
Happy Coding
____

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

pykolofinance-1.0.12.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

pykolofinance-1.0.12-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file pykolofinance-1.0.12.tar.gz.

File metadata

  • Download URL: pykolofinance-1.0.12.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.8 Darwin/23.5.0

File hashes

Hashes for pykolofinance-1.0.12.tar.gz
Algorithm Hash digest
SHA256 e4a0d5592809950a995f6decde9b8c2c60d0506f9d71cf5beb3a6d3084830d0e
MD5 2c177b73d9e9a650c0824aa838fcf265
BLAKE2b-256 8e5ecbaf762ada0f25142caa1367a18c18657eee4bfa7b3da60a000cf5b69f21

See more details on using hashes here.

File details

Details for the file pykolofinance-1.0.12-py3-none-any.whl.

File metadata

  • Download URL: pykolofinance-1.0.12-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.8 Darwin/23.5.0

File hashes

Hashes for pykolofinance-1.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 dbcbbb6b37fd6eb6e2fb9468951fd68a432f4aae1b05ec2e34db0efc8d9d2ad7
MD5 53cea9f98aee770a9c24431cf01e8958
BLAKE2b-256 bdc6c42337fa45bb10d3cb4bbe7fa25dde9d442b638addddfdaefba661eb9245

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page