Buzzerboy SaaS Tenants
Buzzerboy SaaS Tenants is a package that provides components for managing tenant configurations in a multi-tenant SaaS application. This package helps in defining and managing tenant-specific settings, data isolation, and other tenant-related functionalities across various applications.
It implements Buzzerboy's Standard Features by default, and isolate the UI separately. Applications that are developed that will use Buzzerboy Standard Features can implement UI separately.
More information: https://buzzerboy.atlassian.net/wiki/spaces/BC/pages/69369878/Standard+Features
Introduction
The Buzzerboy SaaS Tenants package is designed to simplify the management of tenant configurations in a multi-tenant SaaS environment. It provides a set of tools and components that allow developers to easily define and manage tenant-specific settings, ensuring data isolation and customization for each tenant.
Features
- Tenant configuration management
- Data isolation for tenants
- Tenant-specific settings and customization
- Easy integration with existing applications
- User type access control with reusable permission keys
Reference
The buzzerboy-saas-tenants package uses the following Buzzerboy guidances:
- https://buzzerboy.atlassian.net/wiki/spaces/BC/pages/226820115/How+To+Build+an+app+as+a+reusable+component
- https://buzzerboy.atlassian.net/wiki/spaces/BC/pages/123207703/Creating+and+Distributing+a+Modular+Reusable+Django+App
Getting Started
Follow these steps to get started with the Buzzerboy SaaS Tenants package:
Installation
To install the package, use the following command:
pip install buzzerboy-saas-tenants
###Software Dependencies Ensure you have the following dependencies installed:
- Python >= 3.8
- Django >= 3.2
- djangorestframework >= 3.12
Usage
To use buzzerboy-saas-tenants you must include it in your django app under the requirements.txt, and add each component as an installed app.
More details on Confluence: https://buzzerboy.atlassian.net/wiki/spaces/BC/pages/225968137/How+To+Use+buzzerboy-saas-tenants
Permissions and Access Control
Access control is based on user types and access keys.
UserProfileis linked to Django'sUserand aUserType.UserTypeAccessassignsaccess_keyvalues to a user type.UserType.has_full_accessgrants unrestricted access (recommended for Administrator).
Define access keys
Create UserTypeAccess records in the Django admin or via fixtures. Use the same
access_key for multiple views to reuse a single permission.
Example access keys:
TEAM_VIEWTEAM_MANAGETENANT_SETTINGSTENANT_MANAGEMENTSUBSCRIPTION_PLANS
Protect views with decorators
Use the require_access decorator on any view that needs protection. Views without
the decorator remain accessible to authenticated users as before.
from django.contrib.auth.decorators import login_required
from buzzerboy_saas_tenants.saas_tenants.access import require_access
@login_required(login_url="/login/")
@require_access("TENANT_MANAGEMENT")
def tenant_management_list(request):
...
Notes
- Superusers are always allowed.
- If
UserType.has_full_accessis true, access checks are bypassed.
##Latest Releases Check the releases page for the latest updates and release notes.
##API References Refer to the API documentation for detailed information on how to use the package.
##Build and Test To build and test the package, follow these steps:
###Prepare Before building, prepare the build by determining the build version and generating a CHANGELOG by analyzing commits
python prepare.py
##Building Use the following command to build the package:
python -m build
Testing Run the tests using the following command:
pytest
##Contribute All Buzzerboy Platform members (Staff, Contractors, Clients and Users) are welcome contributions from the community to make this package better. Here’s how you can contribute:
- Clone the repository
- Create a new branch (git checkout -b feature-branch)
- Make your changes
- Commit your changes (git commit -am 'Add new feature')
- Push to the branch (git push origin feature-branch)
- Create a new Pull Request
- For more details, refer to our contributing guidelines.
###License This project is licensed under the MIT License - see the LICENSE file for details.
###Acknowledgements
- Django
- Django REST framework
Metadata
Release files for buzzerboy-saas-tenants 0.138.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| buzzerboy_saas_tenants-0.138.3.tar.gz | 86.7 kB | Without provenance | Details for buzzerboy_saas_tenants-0.138.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| buzzerboy_saas_tenants-0.138.3-py3-none-any.whl | Python 3 | none | any | Details for buzzerboy_saas_tenants-0.138.3-py3-none-any.whl |
Total release size: 203.5 kB
Release files / buzzerboy_saas_tenants-0.138.3.tar.gz
| Download URL | buzzerboy_saas_tenants-0.138.3.tar.gz |
|---|---|
| Size | 86.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
23e2d9bb4fc18d24ae7a7f035bedc10b5c27de40646272f879a522dd8f1873c6
|
|
BLAKE2b-256 checksum How to use checksums |
f0c0e4a8265223c76db15b9c762329880e356ef7aa2ef521bd99305f0f0bb602
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.14.3
|
Release files / buzzerboy_saas_tenants-0.138.3-py3-none-any.whl
| Download URL | buzzerboy_saas_tenants-0.138.3-py3-none-any.whl |
|---|---|
| Size | 116.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d6770713b72b2d5071a279657a39ab0ffa1a1618277eec12f03948b15fe4e4a
|
|
BLAKE2b-256 checksum How to use checksums |
53f9e07b68fc35bfeffd56ef6788b7d79e8f84a4a4211833b81be19c83ca1585
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.14.3
|
Security for buzzerboy-saas-tenants 0.138.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.