102 lines
2.3 KiB
Markdown
102 lines
2.3 KiB
Markdown
# 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
|