- Add comprehensive database migrations (001-024) for schema evolution - Enhance API schema with expanded type definitions and resolvers - Add new middleware: audit logging, rate limiting, MFA enforcement, security, tenant auth - Implement new services: AI optimization, billing, blockchain, compliance, marketplace - Add adapter layer for cloud integrations (Cloudflare, Kubernetes, Proxmox, storage) - Update Crossplane provider with enhanced VM management capabilities - Add comprehensive test suite for API endpoints and services - Update frontend components with improved GraphQL subscriptions and real-time updates - Enhance security configurations and headers (CSP, CORS, etc.) - Update documentation and configuration files - Add new CI/CD workflows and validation scripts - Implement design system improvements and UI enhancements
4.5 KiB
Configuration Guide
Organization and Domain Configuration
Crossplane API Group
The Crossplane provider uses a configurable API group. Set the following environment variable:
Portal:
NEXT_PUBLIC_CROSSPLANE_API_GROUP=proxmox.sankofa.nexus
Default: proxmox.sankofa.nexus
To use a different organization:
- Update the Crossplane provider's API group in
crossplane-provider-proxmox/apis/v1alpha1/groupversion_info.go - Set
NEXT_PUBLIC_CROSSPLANE_API_GROUPto match
Git Repository URL
ArgoCD Application (gitops/apps/argocd/application.yaml):
- Uses environment variable substitution:
${GIT_REPO_URL} - Default:
https://github.com/YOUR_ORG/sankofa-phoenix
To configure:
export GIT_REPO_URL=https://github.com/your-org/sankofa-phoenix
kubectl apply -f gitops/apps/argocd/application.yaml
Or edit the file directly before applying.
Go Module Path
File: crossplane-provider-proxmox/go.mod
Current: module github.com/sankofa/crossplane-provider-proxmox
To change:
-
Update
go.mod:module github.com/your-org/crossplane-provider-proxmox -
Update all imports in Go files:
find crossplane-provider-proxmox -name "*.go" -exec sed -i 's|github.com/sankofa|github.com/your-org|g' {} \; -
Run
go mod tidy
Domain Configuration
All domain placeholders should be replaced with actual domains:
sankofa.nexus→ Your actual domain (currently using sankofa.nexus as placeholder)- Replace with your actual domain in production
sankofa.nexus→ Your actual domain (if different)
Sovereign Identity Configuration (Keycloak)
Keycloak Setup
Sankofa Phoenix uses Keycloak for sovereign identity management (NO Azure dependencies):
-
Deploy Keycloak:
docker-compose up -d keycloak # Or use Kubernetes: kubectl apply -f gitops/apps/keycloak/ -
Configure Environment Variables:
KEYCLOAK_URL=http://localhost:8080 KEYCLOAK_REALM=master KEYCLOAK_CLIENT_ID=sankofa-api KEYCLOAK_CLIENT_SECRET=your-client-secret KEYCLOAK_MULTI_REALM=true -
Create Clients:
- API client:
sankofa-api(confidential) - Portal client:
portal-client(confidential)
- API client:
-
Multi-Realm Support (Optional):
- Set
KEYCLOAK_MULTI_REALM=truefor tenant isolation - Each tenant gets its own Keycloak realm automatically
- Set
See Identity Setup Guide for detailed instructions.
Multi-Tenancy Configuration
Enable Multi-Tenancy
ENABLE_MULTI_TENANT=true
DEFAULT_TENANT_ID= # Leave empty for system resources
BLOCKCHAIN_IDENTITY_ENABLED=true
Billing Configuration
BILLING_GRANULARITY=SECOND # SECOND, MINUTE, HOUR
BLOCKCHAIN_BILLING_ENABLED=true
See Tenant Management Guide and Billing Guide for details.
Environment Variables Summary
Required for Production
JWT_SECRET- Must be changed from defaultDB_PASSWORD- Must be changed from defaultKEYCLOAK_URL- Actual Keycloak instanceKEYCLOAK_CLIENT_ID- Keycloak client IDKEYCLOAK_CLIENT_SECRET- Keycloak client secretNEXT_PUBLIC_*- All public URLs must point to production services
Optional but Recommended
ENABLE_MULTI_TENANT- Enable multi-tenancy (default: false)KEYCLOAK_MULTI_REALM- Enable multi-realm support (default: false)BILLING_GRANULARITY- Billing granularity (default: HOUR)BLOCKCHAIN_IDENTITY_ENABLED- Enable blockchain identity (default: false)BLOCKCHAIN_BILLING_ENABLED- Enable blockchain billing (default: false)SENTRY_DSN- Error trackingBLOCKCHAIN_*- If using blockchain featuresLOG_LEVEL- Set toinfoorwarnin production
Quick Configuration Checklist
- Update
JWT_SECRETin production - Update
DB_PASSWORDin production - Deploy and configure Keycloak
- Create Keycloak clients (API and Portal)
- Set
KEYCLOAK_CLIENT_SECRETin production - Enable multi-tenancy if needed (
ENABLE_MULTI_TENANT=true) - Configure billing granularity (
BILLING_GRANULARITY) - Set
NEXT_PUBLIC_CROSSPLANE_API_GROUPif different from default - Update Git repository URL in ArgoCD application
- Replace all domain placeholders
- Configure error tracking (Sentry or custom)
- Set up proper logging in production
- Review and update all
localhostdefaults - Run database migrations:
cd api && npm run db:migrate