Doctave · Schema

Doctave Site

A documentation site managed on the Doctave docs-as-code platform, representing a collection of pages, configuration, and deployment settings.

DocumentationOpenAPIPlatformPortals

Properties

Name Type Description
id string Unique identifier for the documentation site.
name string Display name of the documentation site.
slug string URL-friendly slug for the site.
description string A brief description of the documentation site.
customDomain string Custom domain configured for the site.
repository string Source repository URL for the documentation content.
branch string Git branch used for building the site.
visibility string Whether the site is publicly accessible or private.
navigation array Ordered list of navigation items defining the site structure.
theme object Theme and branding configuration for the site.
createdAt string Timestamp when the site was created.
updatedAt string Timestamp when the site was last updated.
View JSON Schema on GitHub

JSON Schema

doctave-site-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/doctave/refs/heads/main/json-schema/doctave-site-schema.json",
  "title": "Doctave Site",
  "description": "A documentation site managed on the Doctave docs-as-code platform, representing a collection of pages, configuration, and deployment settings.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the documentation site."
    },
    "name": {
      "type": "string",
      "description": "Display name of the documentation site."
    },
    "slug": {
      "type": "string",
      "description": "URL-friendly slug for the site.",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
    },
    "description": {
      "type": "string",
      "description": "A brief description of the documentation site."
    },
    "customDomain": {
      "type": "string",
      "format": "hostname",
      "description": "Custom domain configured for the site."
    },
    "repository": {
      "type": "string",
      "format": "uri",
      "description": "Source repository URL for the documentation content."
    },
    "branch": {
      "type": "string",
      "description": "Git branch used for building the site.",
      "default": "main"
    },
    "visibility": {
      "type": "string",
      "enum": ["public", "private"],
      "description": "Whether the site is publicly accessible or private."
    },
    "navigation": {
      "type": "array",
      "description": "Ordered list of navigation items defining the site structure.",
      "items": {
        "$ref": "#/$defs/NavigationItem"
      }
    },
    "theme": {
      "type": "object",
      "description": "Theme and branding configuration for the site.",
      "properties": {
        "primaryColor": {
          "type": "string",
          "description": "Primary brand color in hex format.",
          "pattern": "^#[0-9a-fA-F]{6}$"
        },
        "logo": {
          "type": "string",
          "format": "uri",
          "description": "URL to the site logo image."
        },
        "favicon": {
          "type": "string",
          "format": "uri",
          "description": "URL to the site favicon."
        }
      }
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the site was created."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the site was last updated."
    }
  },
  "required": ["id", "name", "slug"],
  "$defs": {
    "NavigationItem": {
      "type": "object",
      "description": "A navigation entry representing a page or section in the site hierarchy.",
      "properties": {
        "title": {
          "type": "string",
          "description": "Display title of the navigation item."
        },
        "path": {
          "type": "string",
          "description": "URL path for the navigation item."
        },
        "children": {
          "type": "array",
          "description": "Nested navigation items for sub-sections.",
          "items": {
            "$ref": "#/$defs/NavigationItem"
          }
        }
      },
      "required": ["title"]
    }
  }
}