- Add comprehensive doc comments to all public functions, structs, and modules following RUST_STANDARDS.md format
- Add unit tests for models.rs (serialization, deserialization, response creation)
- Add unit tests for db.rs (key building, parsing, expiration checking)
- Fix clippy warnings (unused imports, dead code, large enum variant with Box<PricingData>)
- Add rustfmt.toml and clippy.toml configuration files
- Add check-quality.sh script for running all quality checks
- Add fix-quality.sh script for automatically fixing formatting and clippy issues
- Verify cargo doc generates clean documentation with no warnings
- 25 tests added (22 passing, 3 need JSON deserialization fixes)
Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Removed AWS Pricing API and Cost Explorer clients to make crud-pricing
a pure DynamoDB CRUD layer. This fixes layer violation where CRUD was
making external AWS API calls.
Changes:
- Deleted src/aws_pricing.rs (AWS Pricing API client)
- Deleted src/cost_explorer.rs (Cost Explorer client)
- Removed PricingClient and StsClient from main.rs
- Removed QueryAwsApi and QueryCostExplorer operations
- Removed fetch_if_missing behavior (Get operation now only reads from cache)
- Removed aws-sdk-pricing, aws-sdk-costexplorer, aws-sdk-sts dependencies
- Removed pricing_api_access and sts_assume_role IAM policies
Result: Pure CRUD layer with only DynamoDB operations (Get, Put, ListCommon, IncrementAccess)
Reduced from ~1100 lines to ~600 lines
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Complete CRUD service for AWS pricing operations - single source of truth.
Features:
- Dual pricing model (retail + account-specific with auto EDP/PPA detection)
- Get/Put pricing operations with intelligent caching
- AWS Pricing API integration for public list prices
- AWS Cost Explorer integration for account-specific pricing
- Access counting for self-learning 14-day refresh
- Query most-accessed instances (powers smart refresh)
- TTL: 30 days (retail), 7 days (account-specific)
Architecture:
- All other lambdas use this for pricing operations
- No direct DynamoDB access from other components
- Consistent schema enforcement
- Complete IAM setup for Pricing API, Cost Explorer, STS
Infrastructure:
- Complete Terraform configuration
- Full CI/CD pipeline (Jenkinsfile)
- Comprehensive documentation
- Production-ready scaffolding
Part of Phase 1 - foundation for pricing system.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>