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.136.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.136.3-py3-none-any.whl (116.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for buzzerboy_saas_tenants-0.136.3.tar.gz
Algorithm Hash digest
SHA256 aae0d843cdddf40e0636a2ec1822caf576a9930da614cbe86d9e8c9f0b3021c9
MD5 b90cd57c55de0a6a2f1cd1f9c0c46d9d
BLAKE2b-256 f994fa64d376efe0a48b4f7baf9961b9e24f794d70927ffdbf08a4d8c3954445

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buzzerboy_saas_tenants-0.136.3-py3-none-any.whl
Algorithm Hash digest
SHA256 61eda62f5d1125175f1376e409724948dec5592ee682da339ba0b0fe10125810
MD5 87e931a7e2cc5bf3e5b124418772748d
BLAKE2b-256 5c8d937957c0ed6882f0d51e24856dfb5f14441c1604001d89c85969c18d2fe9

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