A utility package for kolomoni 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pykolofinance-2.0.1.tar.gz
(16.2 kB
view details)
Built Distribution
File details
Details for the file pykolofinance-2.0.1.tar.gz
.
File metadata
- Download URL: pykolofinance-2.0.1.tar.gz
- Upload date:
- Size: 16.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.8 Darwin/24.0.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b96008ccdbf039fd13e39b0247872e3a8847bd83d3edeae87259408042530991 |
|
MD5 | 2110b9ce846ef4ca3ce31cc2268b9e08 |
|
BLAKE2b-256 | 4b27cf6bef8129db8ee97cdb7926844b08a3886baf2c7352150626dd39ca89ad |
File details
Details for the file pykolofinance-2.0.1-py3-none-any.whl
.
File metadata
- Download URL: pykolofinance-2.0.1-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.8 Darwin/24.0.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06bfdd60f45eb788b8bc81c522ee4ffbe050740e1bfa0c68ad096f820ac02931 |
|
MD5 | b7367d10f4ab7e16bed2f808c454e596 |
|
BLAKE2b-256 | 5ea37f8455ac839e02fc506fee5847749ef086840fcd315085daa0b944920484 |