veza/veza-backend-api/docs/ENTRYPOINTS.md
2025-12-12 21:34:34 -05:00

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

  1. For Production: Always use cmd/api/main.go
  2. For Development: Use cmd/api/main.go
  3. For Migrations: Use cmd/migrate_tool/main.go
  4. 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