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.7.1.tar.gz (4.4 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.7.1-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for buzzerboyarchetype-1.7.1.tar.gz
Algorithm Hash digest
SHA256 e45164177a9a68d797a74aff9e46567d1a4af897a6bd3237f718add8b2120a9d
MD5 fa6a829339f7f5fbd1ca54308ce12842
BLAKE2b-256 9046d30fc6f7fca6c58486291ca8cfcb37a31151f58d8a233da3a1c64e71d1d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buzzerboyarchetype-1.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d384ff65cdfee62d849910ae7fa114877e77f9392379d294276332bae2d8d11f
MD5 6a5b8032c731fef1911d53aca4a462d1
BLAKE2b-256 21cfa2dcba7a54726e0af7af92f729f127f5b5457f75d62db23999baca612324

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