Skip to main content

Buzzerboy Architecture Standard for Buzzerboy Based Architectures

Project description

Buzzerboy Archetype

A standardized architecture framework for Buzzerboy-based applications that provides consistent project naming, configuration, and deployment patterns across different environments and tiers.

Overview

The Buzzerboy Archetype is a Python package that standardizes how Buzzerboy applications are structured, named, and configured. It provides a consistent interface for defining project metadata including product names, application names, deployment tiers, and AWS infrastructure settings.

Features

  • Standardized Project Naming: Consistent naming convention across all Buzzerboy projects
  • Multi-Tier Support: Support for different deployment environments (dev, staging, production)
  • AWS Integration: Built-in support for AWS regions and resource naming
  • Secret Management: Standardized secret naming and organization
  • Domain Management: Automatic domain name generation based on project structure

Installation

Install the package using pip:

pip install BuzzerboyArchetype

Quick Start

from BuzzerboyArchetypeStack import BuzzerboyArchetype

# Create an archetype instance
archetype = BuzzerboyArchetype(
    product='myproduct',
    app='myapp',
    tier='dev',
    organization='buzzerboy',
    region='ca-central-1'  # Optional, defaults to ca-central-1
)

# Get standardized project information
project_name = archetype.get_project_name()  # Returns: myproduct-myapp-dev
domain_name = archetype.get_domain_name()    # Returns: myproduct-myapp-dev.buzzerboy.com
secret_name = archetype.get_secret_name()    # Returns: buzzerboy/dev/myproduct-myapp-dev

API Reference

BuzzerboyArchetype Class

Constructor

BuzzerboyArchetype(product, app, tier, organization, region='ca-central-1')

Parameters:

  • product (str): The product name
  • app (str): The application name
  • tier (str): The deployment tier (e.g., 'dev', 'staging', 'prd')
  • organization (str): The organization name
  • region (str, optional): AWS region, defaults to 'ca-central-1'

Methods

  • get_project_name(): Returns the standardized project name in format {product}-{app}-{tier}
  • get_tier(): Returns the deployment tier, defaults to 'dev' if not specified
  • get_domain_name(): Returns the domain name in format {project_name}.{organization}.com
  • get_secret_name(): Returns the secret path in format {organization}/{tier}/{project_name}
  • get_region(): Returns the AWS region
  • set_stack(stack): Associates a stack object with the archetype

Usage Examples

Basic Usage

from BuzzerboyArchetypeStack import BuzzerboyArchetype

# Development environment
dev_archetype = BuzzerboyArchetype(
    product='productname',
    app='appname',
    tier='tier',
    organization='client'
)

print(f"Project: {dev_archetype.get_project_name()}")
print(f"Domain: {dev_archetype.get_domain_name()}")
print(f"Secrets: {dev_archetype.get_secret_name()}")

Multi-Environment Setup

from BuzzerboyArchetypeStack import BuzzerboyArchetype

environments = ['dev', 'staging', 'prd']
archetypes = {}

for env in environments:
    archetypes[env] = BuzzerboyArchetype(
        product='myproduct',
        app='myapp',
        tier=env,
        organization='buzzerboy'
    )
    
    print(f"{env}: {archetypes[env].get_project_name()}")

Integration with Infrastructure

This archetype is commonly used with infrastructure-as-code tools. For example, with AWS CDK or Terraform:

from BuzzerboyArchetypeStack import BuzzerboyArchetype
# Example integration (actual implementation may vary)

archetype = BuzzerboyArchetype(
    product='productname',
    app='appname',
    tier='tiername',
    organization='clientname'
)

# Use archetype values for infrastructure
infrastructure_config = {
    'project_name': archetype.get_project_name(),
    'environment': archetype.get_tier(),
    'domain_name': archetype.get_domain_name(),
    'region': archetype.get_region(),
    'secret_name': archetype.get_secret_name()
}

Development

Prerequisites

  • Python >= 3.8
  • setuptools >= 61.0

Building

The project uses pyproject.toml for configuration and setuptools for building:

pip install build
python -m build

Version Management

The project uses semantic versioning.

Contributing

This project is internally managed by Buzzerboy Inc

License

This project is licensed under the MIT License.

Support

For issues and questions:

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

buzzerboyarchetype-1.10.4.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

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

buzzerboyarchetype-1.10.4-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file buzzerboyarchetype-1.10.4.tar.gz.

File metadata

  • Download URL: buzzerboyarchetype-1.10.4.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.7

File hashes

Hashes for buzzerboyarchetype-1.10.4.tar.gz
Algorithm Hash digest
SHA256 d92910b86380eb9d4b1c05664b55518022da0087b17c938d1b510c1cc244eeeb
MD5 2e0c2ac4a1a875145a137e92c41a7a4d
BLAKE2b-256 c21283b069eae8fbfec452e73984070006db30230761d1064181a49de48d2285

See more details on using hashes here.

File details

Details for the file buzzerboyarchetype-1.10.4-py3-none-any.whl.

File metadata

File hashes

Hashes for buzzerboyarchetype-1.10.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9b1791fe946a88f30f85441116429cf862bcf7e990f76254659be5c6fac1d8dd
MD5 364bf5bd86038d3404018aef5bbe89da
BLAKE2b-256 aeee628aade5307d97abebf7579c3990432980fe9f9fda34e897597e3cb48d2b

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