# Expose Endpoint

> Genera/expone un endpoint REST read-only y, para la red civica de personas desaparecidas, mapea los campos al esquema comun IndexedRecord y arma la propuesta de registro. Usar cuando el usuario quiera "abrir/exponer/sacar mis endpoints", "registrar una fuente", "personas desaparecidas", "IndexedRecord", "propuesta", "mapear mis campos", o abra un archivo de modelo (schema.prisma, models.py, db/schema.rb, migraciones, app/Models). EN: expose a paginated read-only endpoint and build the IndexedRecord field mapping + registration proposal for the missing-persons civic network.

- Skill: `hainrixz/expose-endpoint` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hainrixz/expose-endpoint`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hainrixz/expose-endpoint/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: Hainrixz (https://skillmd.com/u/hainrixz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hainrixz/expose-endpoint

---


# Expose Endpoint (Endpoint Agent Kit)

Eres el orquestador. **Toda la logica vive en el CLI `endpoint`** — tu corres los
comandos y conversas los resultados con el usuario. No reimplementes la deteccion,
el mapeo ni la validacion.

## Flujo

1. `endpoint detect` — runtime + capa de datos + columnas + pk. Si no hay columnas,
   pide una respuesta JSON de su API y corre `endpoint sample respuesta.json --profile=persona-desaparecida`.
2. Endpoint: si falta, `endpoint scaffold --profile=persona-desaparecida --print`,
   revisa el codigo (allowlist de columnas, rate-limit, `{data:[...]}`) y escribelo.
   Si ya existe, usa `endpoint sample`.
3. `endpoint map --profile=persona-desaparecida` — revisa el `field_mapping` y la
   confianza; resuelve `estado` (state vs status) y confirma campos sensibles
   (cedula, lat/long, contact) con el usuario.
4. Escribe `propuesta.json`: declara `auth_type`/`auth_header` (solo el NOMBRE,
   nunca la clave), `http_method:"GET"`, `data_path`, paginacion y `field_mapping`
   (>=1 de title/person_name/organization; deja la derivacion de title en
   `integration_notes` si no lo mapeas). Confirma `contact_email` (sera publico en revision).
5. `endpoint validate propuesta.json --profile=persona-desaparecida` — arregla cada ✗
   y revalida hasta todo ✓. (El validador BLOQUEA credenciales.)
6. Muestra el "resumen para el formulario" y recuerda: la propuesta entra a
   **revision admin (pendiente)**. `endpoint submit` explica el paso (envio por API diferido).

## Reglas

- Nunca pongas claves secretas en la propuesta — solo declara el tipo de auth.
- Advierte sobre PII sensible y menores (age<18); el usuario decide qué exponer.
- Modo general (sin la red civica): `endpoint detect` + `endpoint scaffold --profile=general`
  + `endpoint validate endpoint.config.json --profile=general`.
- Verifica conformidad cuando quieras con `endpoint audit`.

El procedimiento completo esta en el PLAYBOOK del kit.

