Skip to content

llevintza/aws-config-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

98 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AWS Config Service

πŸš€ A high-performance REST API service for managing tenant-specific configurations across cloud environments and services.

πŸ“Š Project Status

Build Status Security Scan License

🎯 What This Service Does

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.

Why It Matters

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

✨ Key Features

  • πŸš€ 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

πŸš€ Quick Start

Prerequisites

Before you begin, ensure you have:

  • Node.js 22+ (the JavaScript runtime)
  • Yarn (package manager - faster than npm)
  • Docker (for containerization - optional but recommended)

Get Running in 3 Steps

  1. 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
  2. Start development mode:

    yarn dev  # Starts with hot reload
  3. Explore the API:

πŸ—οΈ Architecture at a Glance

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   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)

πŸ› οΈ Development Setup

For First-Time Contributors

  1. Fork the repository on GitHub

  2. Clone your fork locally:

    git clone https://github.com/YOUR-USERNAME/aws-config-service.git
    cd aws-config-service
  3. Run the automated setup:

    ./scripts/setup/setup.sh

    This script will:

    • Check all prerequisites
    • Install dependencies
    • Set up development environment
    • Run initial tests
  4. Start developing:

    yarn dev        # Development with hot reload
    yarn test       # Run tests
    yarn build      # Production build

Code Quality Tools

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

🧭 Project Navigation

Core Directories

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

Essential Files

  • package.json - Dependencies and scripts
  • tsconfig.json - TypeScript configuration
  • docker-compose.yml - Local development with Docker
  • jest.config.js - Testing configuration

πŸ“š Documentation Hub

πŸš€ Getting Started

πŸ—οΈ Architecture & Design

πŸ› οΈ Development

πŸš€ DevOps & Deployment

🀝 Contributing

We welcome contributions from developers of all experience levels! Here's how to get involved:

🎯 Ways to Contribute

  • 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

πŸš€ Contribution Process

  1. Read the Contributor Setup Guide
  2. Fork the repository and create a feature branch
  3. Make your changes with tests
  4. Submit a pull request with a clear description

πŸ“‹ Before You Submit

  • βœ… All tests pass (yarn test)
  • βœ… Code follows our style guide (yarn lint)
  • βœ… Documentation is updated if needed
  • βœ… Commit messages are clear and descriptive

πŸ†˜ Need Help?

πŸ’¬ Getting Support

  • πŸ“– 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 status to check service health

πŸ”§ Common Tasks

# 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

Recent Activity

  • βœ… 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.

About

A simple but optimizes api service that loads configurations for tenant, environment, cloud, service

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors