2.3 KiB
Entry Points Documentation
Overview
This document describes the entry points (main functions) for the Veza Backend API.
Primary Entry Point
cmd/api/main.go
Status: ✅ ACTIVE - Use this entry point for production
Description: Main entry point for the Veza Backend API. This is the production-ready entry point that includes:
- Full configuration loading
- Database initialization and migrations
- All services initialization
- Complete API router setup
- Health checks and metrics
- Graceful shutdown
Usage:
go run cmd/api/main.go
# or
go build -o veza-api cmd/api/main.go
./veza-api
Environment Variables: See BACKEND_CONFIG.md for full configuration options.
Legacy Entry Points
cmd/modern-server/main.go
Status: ⚠️ DEPRECATED - Do not use
Description: Legacy entry point from an earlier architecture migration. Contains incomplete implementations and TODOs.
Why Deprecated:
- Contains commented-out code and TODOs
- Incomplete service initialization
- Not actively maintained
- Same functionality available in
cmd/api/main.go
Migration: Use cmd/api/main.go instead.
Note: This file may be removed in a future version. Do not use for new deployments.
Other Entry Points
cmd/migrate_tool/main.go
Status: ✅ ACTIVE - Database migration tool
Description: Standalone tool for running database migrations.
Usage:
go run cmd/migrate_tool/main.go
cmd/generate-config-docs/main.go
Status: ✅ ACTIVE - Documentation generator
Description: Tool for generating configuration documentation.
Usage:
go run cmd/generate-config-docs/main.go
cmd/tools/hash_gen/main.go
Status: ✅ ACTIVE - Utility tool
Description: Utility for generating password hashes.
Usage:
go run cmd/tools/hash_gen/main.go
Recommendations
- For Production: Always use
cmd/api/main.go - For Development: Use
cmd/api/main.go - For Migrations: Use
cmd/migrate_tool/main.go - Do Not Use:
cmd/modern-server/main.go(deprecated)
Docker
The Dockerfile uses cmd/api/main.go as the entry point:
RUN go build -o veza-api ./cmd/api/main.go
Last Updated: 2025-01-27
Maintained By: Veza Backend Team