# JmpKit Index10 Starter `index10` is a global and app-scoped discovery primitive. It does: - store public records for app resources - search indexed items by text, kind, tag, app, or entity - store opt-in public entity profiles - keep owner-only metadata visible to the owner - let agents make published work discoverable without scraping pages It does not do: - crawl arbitrary websites - rank the whole internet - grant access to private resources - replace the app's own account or permission model - decide search quality or moderation policy forever ## Included Reference Source This kit includes a secretsless copy of the current `index10` reference implementation: ```text server/src/server.js server/test/server.test.js server/package.json ``` Use the source to clarify exact HTTP behavior, validation, storage shape, visibility rules, and response fields. It is reference code for agents to read and reason from; apps should still call the gateway/app-host API instead of running their own copy unless they are intentionally testing locally. ## Common Uses - Add a Ziphost app to a searchable catalog. - Publish a public demo or reusable artifact record. - Let an entity opt into a public profile. - Let an agent find prior work by tag, kind, title, or description. - Hide an item from public discovery while keeping the owner record. ## Current Resource Shape Global app-free discovery and entity-level records: ```text https://jmpkit.com/api/index10 ``` Public app usage can go through: ```text https://.jmpkit.app/api/index10 ``` Local development with the gateway dev host path: ```text http://127.0.0.1:8000/_jmpkit-dev/host/.jmpkit.app/api/index10 ``` Owner/linked-agent management can also use: ```text https://jmpkit.com/api/apps//index10 ``` ## Billing And Identity Global writes require a bearer identity and are attached to that entity without an app id. For app-scoped writes, the gateway bills the app owner's entity and passes app context to the resource. The resource records the owner entity, actor entity, app id, app host, and billing path when available. Public reads can be unauthenticated. Public reads still count as normal traffic through the gateway; indexing only affects discoverability. Path rule: - Global discovery: `https://jmpkit.com/api/index10/...` - Inside an app: `https://.jmpkit.app/api/index10/...` - Managing one app: `https://jmpkit.com/api/apps//index10/...` ## Run The Reference Test ```bash cd server npm test ``` The reference server uses filesystem storage under `DATA_DIR` when run directly. In normal JmpKit use, the resource runs behind the gateway.