Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build a production-shaped Elasticsearch service (a logging/observability pipeline, or an app-search backend with an API). Requirements: (1) a real INGEST path — the Bulk API or an ingest pipeline (grok/set) that transforms documents, or Filebeat -> Elasticsearch for logs; (2) an ALIAS + REINDEX strategy that applies a mapping change with ZERO DOWNTIME; (3) time-series data governed by an ILM policy (rollover + hot -> warm -> cold -> delete) OR clearly justified shard sizing; (4) SECURITY — a scoped API KEY (least privilege) plus TLS, never the elastic superuser; (5) operational readiness — snapshot/restore configured, health/monitoring, and a documented search API or Kibana dashboard; (6) app code that uses an official language CLIENT (not raw curl). Document the mapping, relevance, and lifecycle choices.
A real ingest path (bulk / ingest pipeline / Filebeat); an alias + reindex zero-downtime mapping change.
An ILM policy (rollover + hot-warm-cold-delete) or justified shard sizing; snapshot/restore configured for backup.
A scoped API key (least privilege) + TLS (not the superuser); health/monitoring; a documented search API or dashboard; a language client in app code.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A production-shaped search or observability service ## Goal Build a production-shaped Elasticsearch service (a logging/observability pipeline, or an app-search backend with an API). Requirements: (1) a real INGEST path — the Bulk API or an ingest pipeline (grok/set) that transforms documents, or Filebeat -> Elasticsearch for logs; (2) an ALIAS + REINDEX strategy that applies a mapping change with ZERO DOWNTIME; (3) time-series data governed by an ILM policy (rollover + hot -> warm -> cold -> delete) OR clearly justified shard sizing; (4) SECURITY — a scoped API KEY (least privilege) plus TLS, never the elastic superuser; (5) operational readiness — snapshot/restore configured, health/monitoring, and a documented search API or Kibana dashboard; (6) app code that uses an official language CLIENT (not raw curl). Document the mapping, relevance, and lifecycle choices. ## Acceptance criteria - [ ] Ingest & indexing: A real ingest path (bulk / ingest pipeline / Filebeat); an alias + reindex zero-downtime mapping change. - [ ] Lifecycle & scale: An ILM policy (rollover + hot-warm-cold-delete) or justified shard sizing; snapshot/restore configured for backup. - [ ] Security & ops: A scoped API key (least privilege) + TLS (not the superuser); health/monitoring; a documented search API or dashboard; a language client in app code. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.