Skip to main content

Buzzerboy SaaS Tenants components that predefines the tenant configuration across for apps

Project description

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

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

buzzerboy_saas_tenants-0.137.3.tar.gz (86.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

buzzerboy_saas_tenants-0.137.3-py3-none-any.whl (116.8 kB view details)

Uploaded Python 3

File details

Details for the file buzzerboy_saas_tenants-0.137.3.tar.gz.

File metadata

  • Download URL: buzzerboy_saas_tenants-0.137.3.tar.gz
  • Upload date:
  • Size: 86.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.14.3

File hashes

Hashes for buzzerboy_saas_tenants-0.137.3.tar.gz
Algorithm Hash digest
SHA256 9b78a0fdec83e39127d47443ef38d72066d48443034146a5e3da039d025bf974
MD5 3a5c2af06d12943b9a1294cda5d98304
BLAKE2b-256 6f7515f9d72bfecf5ab0e3f2cb7088793c3886dec4108c7ff49c5540df4a3a9c

See more details on using hashes here.

File details

Details for the file buzzerboy_saas_tenants-0.137.3-py3-none-any.whl.

File metadata

File hashes

Hashes for buzzerboy_saas_tenants-0.137.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1a151440eaa4e9f2b1fcc8dfbc9e1eb8eddcdb3a56b2f08c904a51fe851e6b1e
MD5 1557921278ed2545c8e0b47005988f60
BLAKE2b-256 3076453b3ee4a2e6ba6816bba16df592db74da13f3235cd685908a0740f80e09

See more details on using hashes here.

Supported by

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