{ "index_patterns": ["factory-docs"], "priority": 200, "version": 1, "_meta": { "name": "factory-docs-template", "description": "Index template for the AI Software Factory search index (pages, records, databases). Applied by infrastructure/docker/opensearch-init.sh. Field names must stay in sync with the SearchDocument model in prisma/schema.prisma and the indexer in packages/search." }, "settings": { "index": { "number_of_shards": 1, "number_of_replicas": 1, "refresh_interval": "1s", "analysis": { "analyzer": { "factory_title": { "type": "custom", "tokenizer": "standard", "filter": ["lowercase", "asciifolding"] } } } } }, "mappings": { "dynamic": "false", "properties": { "workspaceId": { "type": "keyword" }, "type": { "type": "keyword", "description": "Document kind: page | record | database | file | comment" }, "title": { "type": "text", "analyzer": "factory_title", "fields": { "keyword": { "type": "keyword", "ignore_above": 512 } } }, "body": { "type": "text" }, "permissions": { "type": "object", "enabled": true, "properties": { "workspaceIds": { "type": "keyword" }, "teamIds": { "type": "keyword" }, "userIds": { "type": "keyword" }, "public": { "type": "boolean" }, "level": { "type": "keyword", "description": "Viewer permission level for this document: VIEW | COMMENT | EDIT | FULL_ACCESS" } } }, "metadata": { "type": "object", "enabled": true, "properties": { "teamId": { "type": "keyword" }, "parentId": { "type": "keyword" }, "createdById": { "type": "keyword" }, "updatedById": { "type": "keyword" }, "isPrivate": { "type": "boolean" }, "isArchived": { "type": "boolean" } } }, "indexedAt": { "type": "date" } } } }