capsule AI-native Unix-like composition layer

capsule.yaml

2,560 bytes · 71 lines · capsule://quake0day/[email protected] raw on github

apiVersion: capsule.dev/v0.1
kind: Capsule
name: scnmnt-api-router
version: 0.1.0
type: adapter
purpose:
  summary: 'Registers all backend API routes for the SceneMint application, connecting
    specific URL paths to their respective handlers from other backend capsules. It
    acts as the central routing configuration for the HTTP server.

    '
  owns:
  - Mapping of API endpoints to handler functions
  - Application of security middleware to specific routes
  does_not_own:
  - Implementation of handler business logic
  - Core application setup or configuration
interfaces:
  provides:
  - kind: http_api
    name: /api/*
    description: All backend API routes for the application.
  requires:
  - kind: library
    name: image.Client
    from_capsule: scnmnt-image-generation-service
    description: Client for image generation and prompt enhancement handlers.
  - kind: library
    name: quota.Store
    from_capsule: scnmnt-quota-service
    description: Store for quota status and check-in handlers.
  - kind: library
    name: security.Middleware
    from_capsule: scnmnt-security-middleware
    description: Security middleware for applying CSRF and source guard to routes.
  - kind: library
    name: config.Security
    from_capsule: scnmnt-app-core
    description: Security configuration for initializing middleware.
dependencies:
  capsules:
  - name: scnmnt-image-generation-service
    version: '>=0.1.0'
  - name: scnmnt-quota-service
    version: '>=0.1.0'
  - name: scnmnt-security-middleware
    version: '>=0.1.0'
agent:
  summary_for_ai: 'An agent working on this capsule would focus on defining and organizing
    API endpoints. They should ensure that routes are correctly mapped to handlers
    and that appropriate middleware is applied for security and request processing.

    '
  avoid:
  - Implementing the actual logic within the handlers
  - Changing the core HTTP server setup
verification:
  invariants:
  - All sensitive API routes must be protected by CSRF and source guard middleware.
  - API paths must be consistent and follow the defined `/api/*` prefix.
x-reuse:
  notes: 'This capsule is an adapter for the Echo HTTP framework. The specific API
    paths (`/api/session`, `/api/status`, `/api/quota/status`, `/api/quota/check-in`,
    `/api/prompts/enhance`, `/api/images/generate`, `/api/images/tasks/:id`, `/api/images/tasks/:id/image`)
    are hardcoded and specific to the SceneMint application. The `security.BodyLimit()`
    middleware is also applied here.

    '
x-reconstruct:
  install: install.json