π A high-performance REST API service for managing tenant-specific configurations across cloud environments and services.
Think of this service as a centralized configuration management hub for multi-tenant cloud applications. Just like how a master control panel manages settings for different buildings in a complex, this service manages configurations for different tenants, cloud regions, and services through a simple, well-documented REST API.
In modern cloud environments, managing configurations across multiple tenants and regions can become chaotic. This service brings order by:
- Centralizing all configuration data in one place
- Organizing configurations by tenant, region, and service
- Providing fast, reliable access through a REST API
- Ensuring consistency across your entire infrastructure
- π High Performance - Built with Fastify for optimal throughput
- π’ Multi-Tenant Support - Isolated configurations per tenant
- βοΈ Cloud-Native Design - Docker-ready with health monitoring
- π Self-Documenting - Interactive Swagger UI for API exploration
- π§ Developer-Friendly - Hot reload, debugging, and comprehensive tooling
- π‘οΈ Production-Ready - Health checks, logging, and monitoring built-in
Before you begin, ensure you have:
- Node.js 22+ (the JavaScript runtime)
- Yarn (package manager - faster than npm)
- Docker (for containerization - optional but recommended)
-
Clone and setup the project:
git clone https://github.com/llevintza/aws-config-service.git cd aws-config-service ./scripts/setup/setup.sh # Automated setup script
-
Start development mode:
yarn dev # Starts with hot reload -
Explore the API:
- Interactive Documentation: http://localhost:3000/docs
- Health Check: http://localhost:3000/health
- Sample API Call: http://localhost:3000/config/tenant1/cloud/us-east-1/service/api-gateway/config/rate-limit
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β API Gateway βββββΆβ Config Service βββββΆβ Configuration β
β (Fastify) β β (Business) β β Store β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β β
βΌ βΌ βΌ
β’ Request Routing β’ Data Validation β’ File System
β’ Input Validation β’ Business Logic β’ DynamoDB
β’ API Documentation β’ Response Formatting β’ Hybrid Mode
Think of it as three layers working together:
- Front Door (API Layer): Handles incoming requests and validates them
- Brain (Service Layer): Processes business logic and data transformation
- Storage (Data Layer): Flexible backends (files, DynamoDB, or both)
-
Fork the repository on GitHub
-
Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/aws-config-service.git cd aws-config-service -
Run the automated setup:
./scripts/setup/setup.sh
This script will:
- Check all prerequisites
- Install dependencies
- Set up development environment
- Run initial tests
-
Start developing:
yarn dev # Development with hot reload yarn test # Run tests yarn build # Production build
We maintain high code quality with automated tools:
- TypeScript for type safety
- ESLint for code standards
- Prettier for consistent formatting
- Jest for testing
- Husky for pre-commit hooks
aws-config-service/
βββ src/ # Main source code
β βββ routes/ # API endpoint definitions
β βββ services/ # Business logic layer
β βββ config/ # Configuration management
β βββ types/ # TypeScript type definitions
βββ data/ # Sample configuration data
βββ docs/ # Detailed documentation
βββ scripts/ # Development & deployment utilities
βββ __tests__/ # Test suites
package.json- Dependencies and scriptstsconfig.json- TypeScript configurationdocker-compose.yml- Local development with Dockerjest.config.js- Testing configuration
- Contributor Setup - Complete setup guide for new contributors
- Development Workflow - Day-to-day development practices
- System Architecture - Design decisions and architectural patterns
- Testing Guide - Comprehensive testing strategies
- Debugging - Debug configurations and troubleshooting
- Docker Guide - Container development and deployment
- Scripts Reference - All available commands and utilities
- CI/CD Pipeline - Automated workflows and deployment
- Database Setup - DynamoDB configuration and management
- Security Guidelines - Security practices and tools
We welcome contributions from developers of all experience levels! Here's how to get involved:
- Bug Reports: Found something broken? Open an issue!
- Feature Requests: Have an idea? We'd love to hear it!
- Code Contributions: Fix bugs, add features, improve documentation
- Documentation: Help make our docs even better
- Read the Contributor Setup Guide
- Fork the repository and create a feature branch
- Make your changes with tests
- Submit a pull request with a clear description
- β
All tests pass (
yarn test) - β
Code follows our style guide (
yarn lint) - β Documentation is updated if needed
- β Commit messages are clear and descriptive
- π Documentation: Start with the
../docs/folder for detailed guides - π Issues: Create a GitHub issue for bugs or questions
- π‘ Discussions: Join our discussions for ideas and help
- β‘ Quick Status: Run
yarn statusto check service health
# Check if everything is working
yarn status
# Run all quality checks
yarn lint && yarn test && yarn build
# Clean install (if you have issues)
rm -rf node_modules yarn.lock && yarn install
# Docker development
yarn docker:up # Start all services
yarn docker:down # Stop all services- β CI/CD Pipeline: Fully automated testing and deployment
- β Security Scanning: Regular vulnerability assessments
- β Documentation: Comprehensive guides for all contributors
- π Active Development: Regular updates and improvements
Ready to contribute? Start with our Contributor Setup Guide and join our growing community of developers!
For detailed technical information, architecture decisions, and advanced usage, explore the comprehensive documentation in the ../docs/ folder.