Skip to content

Latest commit

 

History

History
176 lines (134 loc) · 6.08 KB

readme.md

File metadata and controls

176 lines (134 loc) · 6.08 KB

AWS Pricing Helper Browser Extension

A browser extension that displays real-time AWS service pricing information during service creation in the AWS Console. Works with Chrome, Firefox, Brave, Safari, and Edge.

Example:

example

🎯 Current Features (MVP)

  • Certificate Manager Pricing: Shows pricing information when clicking the "export_enabled" option on ACM certificate request pages
  • EC2 Launch Instances: Displays "MAC instances from $1/hour" when loading the EC2 launch instances page
  • Real-time Display: Pricing information appears as an overlay when interacting with specific form elements
  • Multi-region Support: Works across all AWS regions and subdomains
  • Cross-browser Support: Compatible with Chrome, Firefox, Brave, Safari, and Edge

💰 Supported Services

AWS Certificate Manager (ACM)

  • Standard Domain: $15/month
  • Wildcard Domain: $149/month
  • Trigger: Clicking the export_enabled checkbox on certificate request pages

EC2 Launch Instances

  • MAC Instances: From $1/hour
  • Trigger: Automatically displays when loading the EC2 launch instances page

🚀 Installation by Browser

Chrome / Brave / Edge

  1. Download this repository as a ZIP file and extract it
  2. Open Chrome/Brave/Edge and navigate to chrome://extensions/
  3. Enable Developer Mode (toggle in top right corner)
  4. Click "Load unpacked" and select the extracted extension folder
  5. Navigate to AWS Console and test the functionality

Firefox

Method 1: Temporary Installation (Development)

  1. Download this repository as a ZIP file and extract it
  2. Rename manifest-firefox.json to manifest.json
  3. Open Firefox and navigate to about:debugging
  4. Click "This Firefox" in the left sidebar
  5. Click "Load Temporary Add-on"
  6. Select the manifest.json file from the extracted folder
  7. Navigate to AWS Console and test the functionality

Safari

Prerequisites

  • macOS operating system
  • Apple Developer Account ($99/year) - required for distribution
  • Xcode (for development and testing)
  1. Download this repository as a ZIP file and extract it
  2. Rename manifest-safari.json to manifest.json
  3. Open Xcode and create a new Safari App Extension project
  4. Import the extension files into your project
  5. Build and run the extension in Safari
  6. Enable the extension in Safari Preferences > Extensions

🧪 Testing

Manual Testing Steps

  1. Install the extension using the browser-specific method above
  2. Navigate to AWS Console: Go to any AWS region's ACM service
  3. Test ACM Pricing:
    • Navigate to: https://[region].console.aws.amazon.com/acm/home?region=[region]#/certificates/request/public
    • Example: https://eu-central-1.console.aws.amazon.com/acm/home?region=eu-central-1#/certificates/request/public
    • Find and click the "export_enabled" checkbox
    • Verify pricing overlay appears
  4. Test EC2 Pricing:
    • Navigate to: https://[region].console.aws.amazon.com/ec2/home?region=[region]#LaunchInstances:
    • Example: https://eu-central-1.console.aws.amazon.com/ec2/home?region=eu-central-1#LaunchInstances:
    • Verify "MAC instances from $1/hour" message appears automatically

Browser-Specific Testing

Chrome/Brave/Edge

  • Check chrome://extensions/ to ensure extension is loaded
  • Open Developer Tools (F12) and check Console for any errors
  • Verify extension icon appears in toolbar

Firefox

  • Check about:debugging to ensure extension is loaded
  • Open Developer Tools (F12) and check Console for any errors
  • Verify extension icon appears in toolbar

Safari

  • Check Safari Preferences > Extensions to ensure extension is enabled
  • Open Developer Tools (Develop > Show Web Inspector) and check Console
  • Verify extension appears in Safari toolbar

🔧 Adding New Services

The extension uses a configuration-based system that makes it easy to add new AWS services. See CONFIGURATION_GUIDE.md for detailed instructions.

Quick Example

To add a new service, simply add a configuration to config.js:

newService: {
  name: "New AWS Service",
  location: {
    pattern: "console.aws.amazon.com/newservice/home"
  },
  pricing: {
    cost: "$10/month",
    source: "https://aws.amazon.com/newservice/pricing/"
  },
  action: {
    type: "click", // or "onload" for automatic display
    selectors: ['button[data-testid="create"]']
  },
  message: {
    title: "💰 Service cost:",
    items: [
      { label: "Monthly cost:", value: "cost" }
    ]
  }
}

🤝 Contributing

We welcome contributions! Here's how to get started:

Setting up for Contribution

  1. Fork the repository
  2. Create feature branch: git checkout -b feature/new-service
  3. Make changes and test thoroughly across browsers
  4. Commit changes: git commit -m "Add support for new AWS service"
  5. Push to branch: git push origin feature/new-service
  6. Create Pull Request

Contribution Guidelines

  • Test your changes across multiple browsers (Chrome, Firefox, Safari)
  • Follow existing code style and patterns
  • Update documentation for new features
  • Add appropriate error handling
  • Ensure backward compatibility

🐛 Bug Reports

Found a bug? Please report it:

  1. Check existing issues first
  2. Create detailed bug report including:
    • Extension version
    • Browser and version
    • Operating system
    • AWS Console URL
    • Steps to reproduce
    • Expected vs actual behavior
    • Console error messages (if any)

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

📞 Support

  • GitHub Issues: For bug reports and feature requests
  • Discussions: For general questions and community support

🏆 Acknowledgments

  • AWS for providing comprehensive pricing documentation
  • Browser extension API documentation
  • Contributors and testers across all supported browsers

Note: This extension is not affiliated with Amazon Web Services. All pricing information is sourced from official AWS documentation and should be verified independently.