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 nameapp(str): The application nametier(str): The deployment tier (e.g., 'dev', 'staging', 'prd')organization(str): The organization nameregion(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 specifiedget_domain_name(): Returns the domain name in format{project_name}.{organization}.comget_secret_name(): Returns the secret path in format{organization}/{tier}/{project_name}get_region(): Returns the AWS regionset_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:
- Homepage: https://www-dev.buzzerboy.com/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e45164177a9a68d797a74aff9e46567d1a4af897a6bd3237f718add8b2120a9d
|
|
| MD5 |
fa6a829339f7f5fbd1ca54308ce12842
|
|
| BLAKE2b-256 |
9046d30fc6f7fca6c58486291ca8cfcb37a31151f58d8a233da3a1c64e71d1d3
|
File details
Details for the file buzzerboyarchetype-1.7.1-py3-none-any.whl.
File metadata
- Download URL: buzzerboyarchetype-1.7.1-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d384ff65cdfee62d849910ae7fa114877e77f9392379d294276332bae2d8d11f
|
|
| MD5 |
6a5b8032c731fef1911d53aca4a462d1
|
|
| BLAKE2b-256 |
21cfa2dcba7a54726e0af7af92f729f127f5b5457f75d62db23999baca612324
|