Summary

  • В draft-wei-capability-language-core-00 значение allow_unresolved самостоятельно: ограничение распознано, но доступный оценщик или доказательство не завершили решение.
  • Потребитель сохраняет нормализованный набор обязательств, проверяет их как конъюнкцию и отказывает при любом нарушении или невозможности разрешить условие.
  • allow, полученный внутри временного сегмента, действует лишь до его конца; кэш не должен превращать верный ответ для одной минуты в долгосрочное полномочие.

Где трёхзначное решение становится булевым

Представим ротацию производственного секрета, разрешённую с 05:00 до 05:10 и только через административную сеть. CLC подтверждает сеть, но вызывающая сторона не передала доверенный now. Revision 00 не угадывает время: она возвращает allow_unresolved и сохраняет часовое обязательство.

Это не условный допуск и не обещание проверить позже. Авторизационное решение осталось незавершённым. Потребитель получает надёжное время, передаёт resolution в Resolve либо отказывает.

Опасность часто скрывается в простой обвязке: binding считает любой ненулевой enum истинным, шлюз принимает HTTP 200 за разрешение, workflow знает только success и failure. Тогда адаптер без явного мандата становится последним органом власти.

Распознать ограничение — не значит выполнить его

CLC нейтрален к carrier. Проверка родного контейнера и доверия к издателю остаётся внешней задачей. Язык не исполняет действие. Он оценивает общее выражение и обозначает предел собственной наблюдаемости.

Revision 00 знает форму базовых временных и сетевых ограничений. Их можно разобрать, нормализовать и передать дальше. Но синтаксис не создаёт доверенных часов или актуального сетевого наблюдения. Если удалить известное условие из-за отсутствия оценщика, capability выйдет с более широкими правами.

Поэтому условие остаётся в unresolved. Несколько обязательств одного scheme/type соединены через AND. First-wins, last-wins или выбор любого одного меняют политику. Эквивалентные дубликаты можно свернуть; разные обязательства — нельзя.

Порядок задаётся байтами UTF-8, а не удобной сортировкой среды. Обычный UTF-16-порядок ECMAScript может отличаться. Детерминизм нужен, чтобы две реализации видели один остаток. Сам по себе упорядоченный остаток ничего не удовлетворяет.

Resolve завершает решение, а не украшает журнал

Resolve принимает исходный результат и состояния обязательств. Одно violated даёт deny; только все satisfied дают allow; оставшееся unknown сохраняет allow_unresolved. Некорректные resolution и неверные временные метки приводят к отказу.

Аудит должен связывать версию языка, нативную проверку, первый enum, точный набор остатка, идентификатор и версию оценщика, ссылку на доказательство, время наблюдения, состояние каждого пункта, финальный enum и разрешённое действие. Запись «resolver вызван» не показывает, какое доказательство завершило какое полномочие.

В доказательном пути нет аналогичного промежуточного допуска: неизвестное условие становится UNSATISFIED. Так честное описание незавершённой авторизации не превращается в терпимость к отсутствующей улике.

Разрешение в 05:09 истекает в 05:10

В 05:09 доверенные часы удовлетворяют окно, и Resolve корректно возвращает allow. Через минуту горизонт достигнут. Повторное использование ответа в 05:12 из кэша — новое решение без нового измерения.

Ключа из субъекта, ресурса и действия недостаточно. Кэш должен учитывать контекст, время разрешения и самое раннее окончание временного сегмента. RFC 3339 задаёт представление времени, но не выбирает доверенные часы и допустимый дрейф.

Containment также не заменяет проверку. Capability может структурно входить в другую и быть недопустимой сейчас. Она может быть идеально нормализована, но прийти из недоверенного carrier. Даже финальный allow не доказывает исполнение и внешний эффект.

Слои реальности Heng Lu удерживают различия: текст capability — символ, нормализованный список — представление, данные оценщика — операционное наблюдение, а действие и результат следуют позже. Minimum Initial Specification может стандартизировать передачу остатка, оставляя доверие и последствия ответственным локальным институтам.

Revision 00 сообщает о 123 conformance vectors, 1 184 property cases и трёх реализациях. Это полезное свидетельство running code, но реализации имеют общего автора, а порог независимой реализации из самого draft ещё не достигнут. Независимая команда должна проверить enum bindings, UTF-8-порядок, повторные ограничения, unknown, неверное время и точную границу кэша до сильных заявлений о совместимости.

Sources and limits

Источники подтверждают активный индивидуальный Internet-Draft, публичный корпус и связанные спецификации. Они не подтверждают консенсус IETF, RFC, принятие WG, независимую проверку безопасности, широкое внедрение, доверие к carrier или операционный результат. Статья ограничена каналом распознанных, но не оценённых условий, циклом Resolve и истечением временного допуска revision 00.