Lint Manifest
Changed onLint a YAML manifest for best practices and potential issues.
Goes beyond basic validation to provide actionable suggestions for improving your manifest configuration. This endpoint is designed for AI agents and developers who want to optimize their Mixpeek setup.
Lint Rules:
- UNUSED_EXTRACTOR: Feature extractor defined but not used by any collection
- UNUSED_COLLECTION: Collection not referenced by any retriever
- MISSING_INPUT_SCHEMA: Retriever uses templates but has no input_schema
- SUBOPTIMAL_STAGE_ORDER: Filter stages after expensive operations
- DUPLICATE_FEATURE_URI: Same feature searched multiple times
- MISSING_DESCRIPTION: Resources without descriptions
- NO_SEARCH_STAGE: Retriever with no search stages
- EXTRACTOR_NOT_IN_NAMESPACE: Collection uses extractor not in namespace
- MISSING_SECRET: Secret reference not configured
- UNUSED_BUCKET: Bucket that no collection reads
- TAXONOMY_INPUT_NOT_WRITTEN: Taxonomy reads a feature its collection does not write
- RETRIEVER_FEATURE_NOT_IN_COLLECTIONS: Retriever searches a feature none of its collections write
Severity Levels:
- error: Must be fixed before applying
- warning: Best practice violation, should be fixed
- info: Suggestion for improvement
Example:
curl -X POST /v1/manifest/lint \
-H "Authorization: Bearer $API_KEY" \
-F "manifest_file=@mixpeek.yaml"
Response includes actionable suggestions:
{
"valid": true,
"results": [
{
"code": "MISSING_INPUT_SCHEMA",
"severity": "warning",
"message": "Retriever 'product_search' uses template variables but has no input_schema defined",
"location": "retrievers[0]",
"suggestion": "Define input_schema to document and validate retriever inputs",
"fix_example": "input_schema:\n type: object\n properties:\n query:\n type: string"
}
],
"summary": {"error": 0, "warning": 1, "info": 0}
}
Request
- Base URL: https://api.mixpeek.com
- URL: https://api.mixpeek.com/v1/manifest/lint
- Auth: HTTP bearer
Query parameters
Rule codes to skip (e.g., MISSING_DESCRIPTION)
Request body multipart/form-data
Response
Successful Response
Example response
{
"results": [
{
"code": "UNUSED_COLLECTION",
"location": "collections[2]",
"message": "Collection 'orphan_data' is not referenced by any retriever",
"severity": "warning",
"suggestion": "Add a retriever that uses this collection or remove it"
}
],
"summary": {
"error": 0,
"info": 0,
"warning": 1
},
"valid": true
}Changes
- info
added the new optional request property
- info
- warning
removed the optional property
from the response with the status - info
added the non-success response with the status
- info
added the non-success response with the status
- info
added the optional property
to the response with the status - info
added the required property
to the response with the status - info
added the required property
to the response with the status
- warning