Categorygithub.com/dd3tech/caddy-ddb-http-matcher
modulepackage
0.0.0-20240404102403-b9e15e21caac
Repository: https://github.com/dd3tech/caddy-ddb-http-matcher.git
Documentation: pkg.go.dev

# README

Caddy DynamoDB HTTP Matcher

This module for the Caddy web server allows you to match HTTP requests based on the results of queries to AWS DynamoDB. It can be used to conditionally apply Caddy directives based on data stored in DynamoDB.

It's an easiest way to route traffic depending on a dynamodb query match

Features

  • DynamoDB Integration: Seamlessly query DynamoDB tables to make routing decisions.
  • Flexible Matching: Use any DynamoDB table and specify the key-value pairs for matching.
  • Easy Configuration: Configure directly from your Caddyfile.

Prerequisites

  • Caddy 2.x
  • AWS Account with access to DynamoDB

Installation

To use this module, you need to build Caddy with this custom module included. Follow these steps:

  1. Get the module:

    go get github.com/dd3tech/caddy-ddb-http-matcher.git
    
  2. Build Caddy with the module:

    Check out the Caddy developer guide on how to include external modules in your build.

    You can do it with xcaddy

    xcaddy build --with github.com/dd3tech/caddy-ddb-http-matcher.git
    ./caddy run
    

Configuration

Add the matcher configuration to your Caddyfile. Here's an example:

{
    order dynamodb before path
}

:80 {
    @isActive ddb_matcher {
        table_name "your_table_name"
        key_name "your_key"
        Url_index "idx_to_match_in_host"
        access_key "aws_access_key"
        secret_key "aws_secret_key"
        region "aws_region"
    }
    handle @isActive {
        reverse_proxy http://siteA.com
    }
    handle reverse_proxy http://siteB.com
}

# Structs

DynamoDBMatcher is a Caddy matcher that checks for the existence of a key-value pair in a DynamoDB table.