Skip to main content

Admin Service

The Admin Service is the central management interface for the Vecton platform. It handles tenant lifecycle management, user administration, platform configuration, and monitoring.

Architecture

  Admin Frontend (Vue 3)


Admin Backend (Laravel 12 + FrankenPHP)

├──▶ PostgreSQL (vecton_admin_db)
├──▶ Redis (cache, sessions, queues)
├──▶ RabbitMQ (async jobs)
├──▶ S3 / Rook-Ceph (file storage)
└──▶ Identity Service (auth)

Tech Stack

ComponentTechnology
BackendLaravel 12 + PHP 8.4
ServerFrankenPHP (Octane)
FrontendVue 3 + TypeScript
DatabasePostgreSQL 16 (dedicated DB per service)
Cache/SessionsRedis 7
QueueRabbitMQ via php-amqplib
Object StorageRook-Ceph S3 (private + public buckets)

Deployment

The Admin service runs in the vecton-admin Kubernetes namespace with:

ComponentReplicasSync Wave
Backend (FrankenPHP)21
Worker (queue:work)11
Frontend (Nginx)21
Redis13
CronJob (scheduler)12

Credential Provisioning

On first deployment, a credential-generator Job (sync-wave -1) automatically creates:

SecretContents
vecton-admin-pg-credentialsPostgreSQL user, password, DATABASE_URL
vecton-admin-rabbitmq-credentialsRabbitMQ user, password, vhost, AMQP URL
vecton-admin-app-secretsLaravel APP_KEY
vecton-admin-redis-credentialsRedis host, port, password, URL
s3-credentialsAWS access key, secret key, endpoint, buckets

Features

Tenant Management

  • Create Tenant — Provision new tenant with all services via DevOps API
  • List/Search Tenants — View all tenants with status, plan, and resource usage
  • Update Tenant — Modify configuration, feature flags, and plans
  • Suspend/Activate — Temporarily disable or re-enable tenant access
  • Delete Tenant — Clean removal of all tenant resources

User Management

  • View and manage platform-wide users
  • Assign roles and permissions
  • Reset passwords and 2FA
  • View login history and security events

Platform Monitoring

  • Service health status across all namespaces
  • Resource utilization (CPU, memory, storage)
  • Queue depths and processing rates
  • Error rates and alerts

API

Base URL

EnvironmentURL
Productionhttps://admin.vecton.hu/api
Developmenthttp://localhost:8002/api

Key Endpoints

MethodEndpointDescription
GET/api/tenantsList all tenants
POST/api/tenantsCreate new tenant
GET/api/tenants/{id}Get tenant details
PUT/api/tenants/{id}Update tenant
DELETE/api/tenants/{id}Delete tenant
POST/api/tenants/{id}/suspendSuspend tenant
POST/api/tenants/{id}/activateActivate tenant
GET/api/usersList platform users
GET/api/dashboardPlatform dashboard stats

Authentication

All API requests require a valid Bearer token from the Identity Service:

curl -H "Authorization: Bearer {token}" \
https://admin.vecton.hu/api/tenants

Configuration

Key environment variables:

VariableDescriptionExample
APP_URLBackend URLhttps://admin.vecton.hu
DB_CONNECTIONDatabase driverpgsql
DB_HOSTPostgreSQL hostplatform-postgres-pooler.postgresql.svc
DB_DATABASEDatabase namevecton_admin_db
QUEUE_CONNECTIONQueue driverrabbitmq
CACHE_STORECache driverredis
SESSION_DRIVERSession storageredis
FILESYSTEM_DISKDefault storages3
IDENTITY_API_URLIdentity service URLhttps://identity.vecton.hu/api

Development

# From the vecton/init directory
make dev-main

# Or directly
cd main/main-backend
php artisan serve --port=8002

# Frontend
cd main/main-frontend
npm run dev -- --port 5174

Database

The Admin backend uses its own PostgreSQL database (vecton_admin_db) with a dedicated user, created automatically by the credential-generator in production.

In development, it uses the shared vecton_db with the admin schema.

# Run migrations
php artisan migrate

# Seed with test data
php artisan db:seed

# Fresh start
php artisan migrate:fresh --seed