Skip to content

Commit 31e8c06

Browse files
committed
Initial commit
1 parent 40c6466 commit 31e8c06

File tree

33 files changed

+1660
-789
lines changed

33 files changed

+1660
-789
lines changed

.env.example

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
COMPOSE_FILE=docker/docker-compose.yml
2+
COMPOSE_PROJECT_NAME=user-auth-api
3+
4+
# Local development configuration
5+
LOCAL_DEV=true
6+
7+
# Application settings
8+
APP_NAME=user-auth-api-local
9+
SECRET_NAME=local-dev-secret
10+
11+
# Database configuration
12+
DB_CLUSTER_NAME=local-cluster
13+
DB_DOMAIN=local.mongodb.net
14+
15+
# Authentication
16+
JWT_SECRET=your-jwt-secret-here
17+
IAM_ROLE_ARN=arn:aws:iam::123456789012:role/local-dev
18+
19+
# Optional: Override default port (8080)
20+
# PORT=3000

.github/terragrunt.sh

Lines changed: 0 additions & 35 deletions
This file was deleted.

.github/workflows/dev.yml

Lines changed: 0 additions & 90 deletions
This file was deleted.

.mockery.yaml

Lines changed: 0 additions & 13 deletions
This file was deleted.

.mockery.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
all: false
2+
dir: '{{.InterfaceDir}}'
3+
filename: mocks_test.go
4+
force-file-write: true
5+
formatter: goimports
6+
log-level: info
7+
structname: '{{.Mock}}{{.InterfaceName}}'
8+
pkgname: '{{.SrcPackageName}}'
9+
recursive: false
10+
require-template-schema-exists: true
11+
template: testify
12+
template-schema: '{{.Template}}.schema.json'
13+
packages:
14+
github.com/ahummel25/user-auth-api/service/user:
15+
config:
16+
all: True
17+
dir: "service/user/mocks"
18+
recursive: True
19+
filename: "{{.InterfaceName}}.go"
20+
structname: "Mock{{.InterfaceName}}"
21+
pkgname: "mocks"

Makefile

Lines changed: 65 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,82 @@
1+
# Build configuration
12
BUILD_PREFIX = env GOOS=linux GOARCH=arm64 go build
23
COMMON_LDFLAGS = -s -w -extldflags '-static'
34
COMMON_TAGS = lambda.norpc netgo
45
DEPLOYMENT_STAGE = ${TF_WORKSPACE}
6+
BUILD_DIR = build
7+
PACKAGES_DIR = $(BUILD_DIR)/packages
58

6-
# Update this line to set environment-specific tags for prod and dev
9+
# Environment configuration
710
ENV_TAGS = $(if $(filter prod,$(DEPLOYMENT_STAGE)),prod,$(if $(filter dev,$(DEPLOYMENT_STAGE)),dev,))
811

9-
.PHONY: build clean deploy gomodgen
12+
# Lambda configuration
13+
LAMBDA_DIR = lambda
14+
LAMBDA_CMD_DIR = cmd/lambda
1015

11-
build: lambda/*
12-
for func in lambda/*; do \
13-
mkdir -p build/packages/$$(basename $${func}) ; \
16+
.PHONY: all build clean deploy gomodgen local dev-deps logs logs-mongo help check-deps
17+
18+
# Default target
19+
all: check-deps build
20+
21+
# Help target
22+
help:
23+
@echo "Available targets:"
24+
@echo " all - Build everything (default target)"
25+
@echo " build - Build Lambda functions"
26+
@echo " clean - Remove build artifacts"
27+
@echo " deploy - Deploy to AWS using serverless"
28+
@echo " gomodgen - Generate go.mod file"
29+
@echo " local - Run local development server"
30+
@echo " dev-deps - Start development dependencies"
31+
@echo " logs - View all logs"
32+
@echo " logs-mongo - View MongoDB logs"
33+
@echo " help - Show this help message"
34+
@echo " check-deps - Check required dependencies"
35+
36+
# Check for required dependencies
37+
check-deps:
38+
@command -v go >/dev/null 2>&1 || { echo "Error: Go is not installed"; exit 1; }
39+
@command -v docker >/dev/null 2>&1 || { echo "Error: Docker is not installed"; exit 1; }
40+
@command -v docker compose >/dev/null 2>&1 || { echo "Error: docker-compose is not installed"; exit 1; }
41+
@command -v sls >/dev/null 2>&1 || { echo "Error: Serverless Framework is not installed"; exit 1; }
42+
43+
build:
44+
@echo "Building Lambda functions..."
45+
@mkdir -p $(PACKAGES_DIR)
46+
@for func in $(LAMBDA_DIR)/*/$(LAMBDA_CMD_DIR); do \
47+
funcname=$$(echo $$func | cut -d'/' -f2); \
48+
mkdir -p $(PACKAGES_DIR)/$$funcname; \
1449
$(BUILD_PREFIX) -ldflags "$(COMMON_LDFLAGS)" -tags "$(COMMON_TAGS) $(ENV_TAGS)" \
1550
-trimpath \
16-
-o build/packages/$$(basename $${func})/bootstrap lambda/$$(basename $${func})/*.go ; \
17-
zip -j build/packages/$$(basename $${func}).zip build/packages/$$(basename $${func})/bootstrap ; \
51+
-o $(PACKAGES_DIR)/$$funcname/bootstrap $$func/*.go; \
52+
zip -j $(PACKAGES_DIR)/$$funcname.zip $(PACKAGES_DIR)/$$funcname/bootstrap; \
1853
done
54+
@echo "Build completed successfully!"
1955

2056
clean:
21-
rm -rf ./build ./vendor Gopkg.lock
57+
@echo "Cleaning build artifacts..."
58+
@rm -rf ./$(BUILD_DIR) ./vendor Gopkg.lock
59+
@echo "Clean completed!"
2260

2361
deploy: clean build
24-
sls deploy --stage $(DEPLOYMENT_STAGE) --verbose
62+
@echo "Deploying to $(DEPLOYMENT_STAGE)..."
63+
@sls deploy --stage $(DEPLOYMENT_STAGE) --verbose
2564

2665
gomodgen:
27-
chmod u+x gomod.sh
28-
./gomod.sh
66+
@chmod u+x gomod.sh
67+
@./gomod.sh
68+
69+
# Local development targets
70+
local:
71+
@echo "Starting local development server..."
72+
@go run cmd/local/main.go
73+
74+
dev-deps:
75+
@echo "Starting development dependencies..."
76+
@docker compose up -d
77+
78+
# Logging targets
79+
logs-mongo:
80+
@docker compose logs -f mongodb
81+
82+
logs: logs-mongo

0 commit comments

Comments
 (0)