- 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
API Documentation
GraphQL API
The Sankofa Phoenix API is a GraphQL API built with Apollo Server.
Endpoint
- Development:
http://localhost:4000/graphql - Production:
https://api.sankofa.nexus/graphql
Authentication
All queries and mutations (except login) require authentication via JWT token:
Authorization: Bearer <token>
Schema
See schema.graphql for the complete GraphQL schema.
Queries
Get Resources
query GetResources($filter: ResourceFilter) {
resources(filter: $filter) {
id
name
type
status
site {
id
name
}
}
}
Get Sites
query GetSites {
sites {
id
name
region
status
}
}
Get Current User
query GetMe {
me {
id
email
name
role
}
}
Mutations
Login
mutation Login($email: String!, $password: String!) {
login(email: $email, password: $password) {
token
user {
id
email
name
}
}
}
Create Resource
mutation CreateResource($input: CreateResourceInput!) {
createResource(input: $input) {
id
name
type
status
}
}
Error Handling
The API returns errors in the standard GraphQL error format:
{
"errors": [
{
"message": "Authentication required",
"extensions": {
"code": "UNAUTHENTICATED"
}
}
]
}
Error Codes
UNAUTHENTICATED: Authentication requiredFORBIDDEN: Insufficient permissionsNOT_FOUND: Resource not foundVALIDATION_ERROR: Input validation failedSERVER_ERROR: Internal server error
Rate Limiting
- 100 requests per minute per IP
- 1000 requests per hour per authenticated user
Examples
See examples.md for more usage examples.