Skip to content

Define manifest schema v1 #1

Description

@jordanpartridge

What

Define the JSON manifest schema that drives everything Foundry does.

Schema

{
  "name": "billing-service",
  "description": "...",
  "stack": {
    "framework": "laravel",
    "type": "microservice",
    "php": "8.2",
    "auth": "github-socialite",
    "queue": "redis",
    "db": "sqlite"
  },
  "models": [
    {
      "name": "Plan",
      "attributes": ["name", "price_cents", "interval", "is_active"],
      "relationships": [{ "type": "hasMany", "model": "Subscription" }]
    }
  ],
  "bifrost": {
    "source": "billing-service",
    "events": ["subscription.created", "subscription.cancelled"]
  },
  "quality": { "runner": true, "coverage": 100, "pint": true, "phpstan": true },
  "deploy": { "host": "odin", "quadlet": true }
}

Acceptance Criteria

  • Schema documented in docs/manifest.md
  • ManifestData DTO validates and hydrates from JSON
  • Unknown keys ignored (forward compatible)
  • All fields except name optional with sensible defaults

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions