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/
Metadata
Release files for BuzzerboyArchetype 1.10.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| buzzerboyarchetype-1.10.4.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| buzzerboyarchetype-1.10.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.8 kB
Release files / buzzerboyarchetype-1.10.4.tar.gz
| Download URL | buzzerboyarchetype-1.10.4.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d92910b86380eb9d4b1c05664b55518022da0087b17c938d1b510c1cc244eeeb
|
|
BLAKE2b-256 checksum How to use checksums |
c21283b069eae8fbfec452e73984070006db30230761d1064181a49de48d2285
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.13.7
|
Release files / buzzerboyarchetype-1.10.4-py3-none-any.whl
| Download URL | buzzerboyarchetype-1.10.4-py3-none-any.whl |
|---|---|
| Size | 3.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9b1791fe946a88f30f85441116429cf862bcf7e990f76254659be5c6fac1d8dd
|
|
BLAKE2b-256 checksum How to use checksums |
aeee628aade5307d97abebf7579c3990432980fe9f9fda34e897597e3cb48d2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.13.7
|