Summary

  • draft-wei-capability-language-core-00 trata allow_unresolved como un resultado distinto: reconoce la obligación, pero no cuenta con el evaluador o la evidencia necesarios para decidirla.
  • El consumidor debe conservar el conjunto normalizado, resolver todas las obligaciones conjuntivas y denegar ante cualquier violación o condición que siga sin poder comprobarse.
  • Un allow obtenido al resolver una ventana temporal caduca al terminar el tramo; un caché no puede convertir una prueba instantánea en autoridad duradera.

El fallo que cabe en una conversión de tipo

Pensemos en una operación de tesorería permitida de 10:00 a 10:05 y sólo desde una red determinada. El núcleo confirma la red, pero el llamador no aporta un now confiable. Capability Language Core revision 00 no completa el dato por intuición: devuelve allow_unresolved y mantiene la obligación temporal en la salida.

El nombre puede inducir a error si se lee como prosa. En el contrato, sin embargo, es un enum independiente, no una variante débil de allow. El consumidor tiene dos opciones: reunir la hora fiable y presentar la resolución a Resolve, o denegar. Ejecutar primero y comprobar después contradice la semántica.

Una biblioteca que convierte el enum a booleano, una API que equipara HTTP 200 con permiso o un orquestador que sólo admite éxito y fracaso pueden anular una política bien escrita. La autoridad efectiva queda entonces en el componente que parecía limitarse a transportar el resultado.

Reconocer una regla no equivale a cumplirla

CLC es neutral respecto al carrier. No certifica por sí solo la firma del contenedor nativo ni decide qué emisor merece confianza. Tampoco ejecuta la orden. Evalúa el lenguaje común y deja visibles los límites de su observación.

La revisión 00 reconoce la forma de restricciones de reloj y red. Eso permite analizarlas, normalizarlas y compararlas. No proporciona automáticamente un reloj de confianza, una observación actual del origen ni un evaluador específico del despliegue.

Eliminar una restricción conocida por no saber evaluarla ensancharía la autoridad al pasar por el motor. Por eso sobrevive en unresolved. Si hay varias obligaciones del mismo scheme/type, se aplican todas. Escoger la primera, la última o cualquiera de ellas cambia un AND por otra política.

La normalización ofrece un inventario estable. Puede plegar duplicados equivalentes, nunca condiciones distintas. El orden prescrito usa bytes UTF-8, no la comparación de cadenas que resulte cómoda en cada lenguaje; el orden UTF-16 predeterminado de ECMAScript no es automáticamente válido. Lograr que dos implementaciones enumeren la misma deuda no salda esa deuda.

La resolución forma parte de la autorización

Resolve recibe la decisión previa y el estado de las obligaciones. Su precedencia es deliberadamente conservadora: una condición violated produce deny; sólo todas satisfied producen allow; una unknown mantiene allow_unresolved. Las resoluciones mal formadas y las marcas temporales inválidas terminan en denegación.

Por eso hace falta una cadena auditable, no un mensaje de «resolver ejecutado». Deben quedar unidos la revisión del lenguaje, la verificación nativa, el enum inicial, el conjunto pendiente, la identidad y versión del evaluador, la referencia de evidencia, el momento de observación, el estado de cada condición, el enum final y la liberación de la acción.

La ruta de evaluación de evidencia no dispone de un permiso provisional equivalente: una condición desconocida queda UNSATISFIED. La distinción impide que la honestidad sobre una autorización incompleta se convierta en tolerancia sobre una prueba ausente.

La respuesta de las 10:04 vence a las 10:05

A las 10:04, una fuente horaria confiable satisface la ventana y Resolve devuelve allow correctamente. Esa conclusión tiene un horizonte de un minuto. Reutilizarla a las 10:07 desde un caché crea una decisión nueva sin volver a evaluar el mundo.

El caché debe conocer el contexto, la condición y el límite más temprano de todas las resoluciones temporales. Una clave formada sólo por sujeto, recurso y acción es insuficiente. RFC 3339 fija una sintaxis de fecha y hora; no designa el reloj autorizado ni la desviación aceptable.

La containment tampoco completa el trabajo. Que una capability esté dentro del alcance estructural de otra no demuestra que una restricción temporal esté satisfecha, que el carrier sea confiable o que la acción haya ocurrido. Son comprobaciones distintas y deben dejar recibos distintos.

Las capas de realidad de Heng Lu ayudan a no confundirlas: el capability es una afirmación simbólica; el conjunto normalizado representa trabajo pendiente; el evaluador observa una condición operativa; la acción y su efecto vienen después. Una especificación inicial mínima puede hacer interoperable la entrega de la obligación sin apropiarse de la confianza y las consecuencias locales.

La revisión 00 declara 123 vectores de conformidad y 1.184 casos de propiedades en tres implementaciones. Es evidencia ejecutable valiosa, pero las tres comparten un autor y aún no alcanzan el umbral de implementación independiente descrito por el propio borrador. Una implementación ajena debe probar bindings del enum, orden UTF-8, restricciones repetidas, unknown, fechas inválidas y caducidad exacta antes de presentar la interoperabilidad como hecho.

Sources and limits

Estas fuentes acreditan un Internet-Draft individual activo, su corpus público y especificaciones relacionadas. No acreditan consenso IETF, un RFC, adopción de grupo de trabajo, revisión de seguridad independiente, despliegue amplio, confianza del carrier ni resultados operativos. Este Artículo se limita al canal de restricciones reconocidas pero no evaluadas, el bucle Resolve y el vencimiento temporal de la revisión 00.