Simple licensing helper using mongodb
Project description
pylicensing
Pylicensing is a leightweight tool designed to make key authentication and creation on your distributed python programs easier. It connects to a mongodb database. Click this link to learn more about mongodb, a nosql easy-to-use database with a free tier.
How to install
Pylicensing can be installed via pypi
pip install pylicensing
Warning
I do not recommend to connect to the database on the client directly. If your program was to be cracked, you would expose a database connection string to a possibly malicious person. Be precautious and introduce an API between your client and the database. Pylicensing provides the methods your API client needs.
You can still use pylicensing on your user client, as you could for example check that the Key your user entered conforms the KeyFormat you used for your application, this would prevent people from spamming meaningless keys.
Features
- Customize the Format of a
Key, i.e allow sets of characters, customize amount of sections... Keymetadata (creation date, expiration date, owner, hwids..)- HWID limitations and registrations (max hwids, registered hwids...)
- Key format validations, to avoid requesting a database query.
- Easy database management and queries
Example
You can also check the examples folder in the repository for more detailed examples.
Creating a Key object
my_key_format = KeyFormat(
sections=5, chars_per_section=5, seperator="-", numeric_characters=True
)
new_user_key = Key.create(
my_key_format, user="Freddie Faulig", hwid_limit=1, valid_for=timedelta(days=30)
)
Establishing your database connection
client: MongoClient = MongoClient(os.environ.get("DATABASE_CONNECTION"))
key_manager = KeyManager(client.test.example)
Adding a key to the database
new_user_key = Key.create(
my_key_format, user="Freddie Faulig", hwid_limit=1, valid_for=timedelta(days=30)
)
key_manager = KeyManager(client.test.example)
key_manager.add_to_collection(new_user_key)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pylicensing-0.0.3.tar.gz.
File metadata
- Download URL: pylicensing-0.0.3.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
636e69db9e5636d8971a8b05851fc1fdf44b0d9817005466acee230e119f05c3
|
|
| MD5 |
cba9d15c061895563edfe87adbcfdf24
|
|
| BLAKE2b-256 |
d07fd6dc81223b18c101e2c00cbd15cc916049e71b1cb1a2aeb704f65230da99
|
File details
Details for the file pylicensing-0.0.3-py3-none-any.whl.
File metadata
- Download URL: pylicensing-0.0.3-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d9c14c8ab0833a02ca785a4562379cdeaf85e8e42bfa5e7c15e8289ebb07c4a
|
|
| MD5 |
f69a589795d7f11c2655d63bff3899b7
|
|
| BLAKE2b-256 |
27e114ef10d7adc00526f89110ea14eb2b4f38721a29d601510792e57bc0e600
|