veza/veza-backend-api/docs/ENTRYPOINTS.md

103 lines
2.3 KiB
Markdown
Raw Normal View History

2025-12-13 02:34:34 +00:00
# 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**:
```bash
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**:
```bash
go run cmd/migrate_tool/main.go
```
### `cmd/generate-config-docs/main.go`
**Status**: ✅ **ACTIVE** - Documentation generator
**Description**: Tool for generating configuration documentation.
**Usage**:
```bash
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**:
```bash
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:
```dockerfile
RUN go build -o veza-api ./cmd/api/main.go
```
---
**Last Updated**: 2025-01-27
**Maintained By**: Veza Backend Team