08Certificación

Sección 08

Certificación

Esta página lista las comprobaciones que su servidor debe pasar antes de entrar en producción y en qué orden ocurre cada fase. El modelo de incorporación es sin revisión manual de su código: usted registra el servidor, una batería determinista lo evalúa y recibe el mismo informe que vemos nosotros.

Primeros clientes. La incorporación es asistida: estas mismas comprobaciones se acuerdan y se ejecutan junto a su equipo. La lista de abajo no cambia por eso: es el criterio de aceptación, y conviene que la use como su propia lista de pruebas desde el primer día.

Fases

#FaseQué ocurre
1RegistroSe dan de alta la URL de su servidor, la credencial y la URL de su entorno de pruebas. Eso es todo: no se declaran endpoints ni esquemas, y el catálogo no se configura en ningún panel: cada herramienta llega ya clasificada por el _meta de su definición (página 02). Hoy ese alta la hace su contacto técnico con los datos que usted entrega; la pantalla para hacerlo usted mismo, autenticado en la aplicación, llega con la etapa 2 (README).
2CertificaciónLa batería corre de inmediato contra su entorno de pruebas y devuelve un informe por comprobación. Sin aprobación no hay activación.
3Conversaciones de pruebaSus herramientas quedan disponibles para un agente de pruebas (chat y llamada) sin tráfico de clientes finales.
4ActivaciónSe enciende escenario por escenario, con su nivel y sus interruptores por acción. Usted decide alcance y canales.
5VigilanciaLa batería se repite de forma periódica y ante cada cambio de catálogo; una regresión desactiva la capacidad. Es la última pieza en entrar: hasta entonces, la vigilancia es por monitoreo de errores y aviso a su equipo.

Las comprobaciones que escriben se ejecutan solo contra el entorno de pruebas declarado. La batería nunca escribe en su producción.

Comprobaciones

Bloqueante impide la activación. Aviso queda en el informe y no bloquea.

Protocolo y transporte

ComprobaciónCriterioSeveridad
Descubrimiento y versiónserver/discover responde y anuncia la revisión 2026-07-28Bloqueante
Catálogo válidoTodos los esquemas compilan y los nombres son únicosBloqueante
Esquemas cerradosadditionalProperties: falseBloqueante
Opcionales nullableTodo parámetro fuera de required admite nullBloqueante
required mínimoSin campos exigidos que su sistema pueda resolver por defectoAviso
Nombres y longitudesNombre ≤ 40 y ^[a-z0-9_]+$; description ≤ 700Bloqueante
Una operación por herramientaSin parámetro que multiplexe accionesBloqueante
Rechazo de entrada inválidaFuera de esquema: error de contrato del SDK. Dentro de esquema pero inválida para el negocio: error_type: "VALIDATION". En ningún caso un fallo del servidorBloqueante
Anotaciones coherentesUna escritura no se declara de solo lecturaBloqueante
Clasificación presenteCada herramienta trae com.asixto/capability (o capabilities en plural) con claves válidas, y com.asixto/verbBloqueante
Campos mínimos por dominioLa respuesta trae lo exigido en la página 04Bloqueante
Orden estable del catálogoDos consultas, mismo ordenAviso
Descripciones limpiasSin instrucciones dirigidas al modeloAviso

Autenticación

ComprobaciónCriterioSeveridad
Sin credencial401 con WWW-AuthenticateBloqueante
Credencial inválida o caducada401, no 500Bloqueante
Audiencia ajenaRechazadaBloqueante
Metadatos de recurso protegido (RFC 9728)Publicados y coherentes. Aviso porque el nivel 2 (token rotable) no los requiereAviso
TLSCertificado válido y vigenteBloqueante

Garantías de negocio

ComprobaciónCriterioSeveridad
IdempotenciaMisma clave de _meta dos veces, un solo efectoBloqueante
Propiedad del registroIdentificador ajeno → PERMISSIONBloqueante
Estado terminalTransición inválida → VALIDATION con el estado actualBloqueante
Dato críticoFranja ocupada y monto alterado rechazadosBloqueante
Fuga de datosSin identificadores internos, datos de terceros ni trazasBloqueante
Forma del errorerror_type de los seis canónicos + user_messageBloqueante
Sin resultados = éxitoBúsqueda vacía devuelve lista vacía y total: 0, no errorBloqueante
Vacío vs caído vs inexistenteTres respuestas distinguiblesBloqueante

Rendimiento

ComprobaciónCriterioSeveridad
Latencia p95≤ 2 s sobre la muestra de la bateríaAviso
Tiempo de esperaNinguna llamada supera 30 sBloqueante
Tamaño de respuesta≤ 3.000 caracteresBloqueante
PaginaciónBúsquedas con limit, offset y total, respetando el limit recibidoBloqueante
Forma para vozSin URLs ni correos; ≤ 3 elementos; fecha ISO + pronunciableBloqueante

Autoevaluación previa

Antes de registrar, verifique por su cuenta. Ahorra una vuelta completa:

  • Cada herramienta probada con el Inspector y con un test automatizado.
  • Esquemas cerrados en todas.
  • 401 correcto sin credencial y con credencial inválida.
  • Todo parámetro opcional acepta null en su type.
  • Escritura invocada dos veces con la misma clave de _meta: un solo efecto.
  • Escritura invocada con un identificador de otro contacto: PERMISSION.
  • Operación sobre una entidad en estado terminal: VALIDATION.
  • Búsqueda sin resultados: éxito con lista vacía y total: 0, no error.
  • Respuestas revisadas a ojo: sin identificadores internos ni campos administrativos, ≤ 3.000 caracteres.
  • Solo los seis error_type de la página 06.
  • Búsquedas respetan el limit recibido y devuelven total, limit y offset.
  • Nombres ≤ 40 caracteres y descripciones ≤ 700.
  • Cada herramienta declara com.asixto/capability o capabilities (claves válidas) y com.asixto/verb.
  • Cada dominio devuelve sus campos mínimos (página 04).
  • Ningún token en sus logs.

Requisitos que no se verifican desde fuera

Estos no aparecen arriba porque ninguna batería puede comprobarlos desde el exterior de su sistema. Forman parte del criterio de aceptación igualmente, y se declaran en el registro:

RequisitoPáginaPor qué no es verificable desde fuera
TTL ≥ 7 días y escritura atómica del almacén de idempotencia05La batería solo observa dos llamadas seguidas; no ve su almacén ni espera una semana.
Consultar la clave de idempotencia antes de las guardas05Desde fuera, el orden correcto y el incorrecto se parecen hasta que ocurre un reintento real sobre una entidad ya modificada.
Guardar solo los éxitos05Requiere provocar un fallo transitorio en su dependencia.
Rotación con dos credenciales activas03Es un procedimiento operativo suyo.
Límites propios por credencial y comprobación de salud07Se verifican en la incorporación, no en cada ejecución.
Disponibilidad ≥ 99,5%07Se mide en producción a lo largo del mes, no en una batería.
No exponer borrado duro ni campos que el titular no deba cambiar04 · 02Se revisa al leer su catálogo, que es la única parte donde interviene una persona.

Dicho de otro modo: la batería comprueba la forma; lo de esta tabla es compromiso, y es lo que se revisa si algún día hay un incidente.

Recertificación

CambioRequiere
Herramienta nuevaCertificación de esa herramienta
Cambio de esquema de una herramienta existenteRecertificación de esa herramienta
Renombrar una herramientaCertificación como nueva; la anterior se retira
Cambio de credencial o de URLNueva verificación de autenticación
Cambio interno sin efecto en el contratoNada. La vigilancia periódica lo cubre