Files
Sankofa/docs/api
defiQUG 9daf1fd378 Apply Composer changes: comprehensive API updates, migrations, middleware, and infrastructure improvements
- 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
2025-12-12 18:01:35 -08:00
..

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 required
  • FORBIDDEN: Insufficient permissions
  • NOT_FOUND: Resource not found
  • VALIDATION_ERROR: Input validation failed
  • SERVER_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.