Skip to main content

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:

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.

  • UserProfile is linked to Django's User and a UserType.
  • UserTypeAccess assigns access_key values to a user type.
  • UserType.has_full_access grants 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_VIEW
  • TEAM_MANAGE
  • TENANT_SETTINGS
  • TENANT_MANAGEMENT
  • SUBSCRIPTION_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_access is 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:

  1. Clone the repository
  2. Create a new branch (git checkout -b feature-branch)
  3. Make your changes
  4. Commit your changes (git commit -am 'Add new feature')
  5. Push to the branch (git push origin feature-branch)
  6. Create a new Pull Request
  7. 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)

Source distribution for buzzerboy-saas-tenants 0.138.3
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)

Table of built distributions (wheels) for buzzerboy-saas-tenants 0.138.3
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page