Перейти к содержанию

Минимальные профили компонентов

Требования применяются к выбору нормативных документов в .standards/standards.yaml. Уровни обязательности определены в корневом README.md.

Включение документа в профиль означает проверку области применения его требований. Требование, условия которого в проекте отсутствуют, не применяется и не требует исключения.

DEV-PROF-001. Базовый профиль проекта

Уровень: MUST

Применяется к: каждому проекту с manifest стандартов

Для каждого объявленного компонента каталог применимости должен вычислять документы:

  • docs/governance/standards-manifest.md;
  • docs/architecture/development/project-profiles.md;
  • docs/architecture/core/component-boundaries.md;
  • docs/architecture/core/service-boundaries.md;
  • docs/architecture/development/architecture-decisions.md;
  • docs/architecture/development/change-review.md;
  • docs/architecture/development/dependencies.md;
  • docs/architecture/development/build-lifecycle.md;
  • docs/architecture/development/product-versioning.md;
  • docs/architecture/development/verification.md;
  • docs/architecture/development/project-execution.md;
  • docs/architecture/operations/capacity-load.md;
  • docs/architecture/operations/incident-response.md;
  • docs/architecture/deployment/ci-cd.md;
  • docs/architecture/deployment/supply-chain-security.md;
  • docs/architecture/security/secrets-development.md;
  • docs/architecture/security/secrets-runtime.md;
  • docs/architecture/security/threat-modeling.md;
  • docs/architecture/data/data-classification.md.

Один документ MAY ссылаться сразу на несколько компонентов.

Обоснование

Базовый профиль не позволяет исключить управление зависимостями, сборку и проверку только из-за неполного manifest.

Проверка

  • двусторонняя автоматическая сверка перечня с catalog/applicability/architecture.json посредством scripts/check-docs.sh;
  • автоматическое сопоставление components и documents;
  • запуск scripts/standards.py explain.

Исключения

Не допускаются для запускаемого или публикуемого компонента.

DEV-PROF-002. Профиль вида компонента

Уровень: MUST

Применяется к: каждому элементу components

Помимо базового профиля каталог должен вычислять перечисленные ниже документы.

kind Обязательные документы
backend backend/configuration, backend/startup, backend/resilience, backend/resource-limits, backend/logging, backend/testing, backend/tracing, backend/metrics, backend/error-collection, backend/graceful-shutdown, backend/health-checks, deployment/deployment-strategy, operations/sli-slo, security/transport-security
frontend architecture/reactive-interfaces, frontend/rendering-profiles, frontend/navigation, frontend/forms, frontend/browser-storage-offline, frontend/discoverability, frontend/third-party-code, integration/http-caching, frontend/build, frontend/configuration, frontend/browser-compatibility, frontend/security, frontend/telemetry, frontend/error-collection, frontend/testing, frontend/performance, frontend/accessibility, frontend/i18n, deployment/deployment-strategy, operations/sli-slo, security/transport-security
worker backend/configuration, backend/startup, backend/background-processing, backend/resilience, backend/resource-limits, backend/logging, backend/testing, backend/tracing, backend/metrics, backend/error-collection, backend/graceful-shutdown, backend/health-checks, deployment/deployment-strategy, operations/sli-slo, security/transport-security
mobile-ios architecture/reactive-interfaces, mobile/technology-versions, mobile/dependencies, mobile/build-distribution, mobile/configuration, mobile/accessibility, mobile/security, mobile/storage-offline, mobile/observability, mobile/testing, mobile/lifecycle-navigation, mobile/localization, operations/sli-slo, security/transport-security
mobile-android architecture/reactive-interfaces, mobile/technology-versions, mobile/dependencies, mobile/build-distribution, mobile/configuration, mobile/accessibility, mobile/security, mobile/storage-offline, mobile/observability, mobile/testing, mobile/lifecycle-navigation, mobile/localization, operations/sli-slo, security/transport-security
data-pipeline data/data-pipelines, backend/configuration, backend/startup, backend/resilience, backend/resource-limits, backend/logging, backend/testing, backend/tracing, backend/metrics, backend/error-collection, backend/graceful-shutdown, backend/health-checks, deployment/deployment-strategy, operations/sli-slo, security/transport-security
public-cli development/cli, security/transport-security
public-sdk development/public-sdk, security/transport-security

Значения таблицы обозначают файлы .md в каталоге docs/architecture/.

Обоснование

Вид компонента однозначно задаёт минимальные требования, без которых его нельзя разрабатывать и поставлять предсказуемо.

Проверка

  • двусторонняя автоматическая сверка таблицы с catalog/applicability/architecture.json посредством scripts/check-docs.sh;
  • автоматическое сопоставление kind и результата explain;
  • проверка каталога по его JSON Schema.

Исключения

Исключение из отдельного требования оформляется по STD-MAN-005; удалять документ из минимального профиля запрещено.

DEV-PROF-003. Профиль возможности

Уровень: MUST

Применяется к: каждому элементу capabilities

Тип и роль возможности должны подключать документы из следующего перечня:

Роль all подключает документы независимо от заполнения providers и consumers. Роли provider и consumer подключают документы только соответствующим участникам. Непустой kind дополнительно ограничивает правило видом компонента-consumer.

type Роль kind Обязательные документы
ai-assisted-development all development/ai-assisted-development
http-api provider backend/http-api, backend/api-compatibility, integration/http-caching, integration/file-transfer
http-api consumer backend, worker, data-pipeline integration/http-client
http-api consumer frontend frontend/api-integration, integration/http-caching, integration/file-transfer
http-api consumer mobile-ios, mobile-android mobile/api-integration, integration/file-transfer
graphql-api all integration/graphql
grpc-api all integration/grpc
websocket all integration/websocket
webhook-producer, webhook-consumer all integration/webhooks
event-producer all integration/event-contracts
event-consumer all integration/event-contracts, backend/background-processing
distributed-workflow all backend/audit-logging, backend/stateful-components, integration/distributed-workflows
nats all integration/nats/core, integration/nats/jetstream, integration/nats/key-value, integration/nats/object-store
background-processing all backend/background-processing
stateful-storage all backend/stateful-components, data/backup-recovery, data/identifiers
data-migrations all backend/data-migrations
audit-events all backend/audit-logging
user-authentication all security/authentication, backend/audit-logging
authorization all security/authorization, backend/audit-logging
local-offline-storage all mobile/storage-offline
push-notifications all mobile/push-notifications
deep-links all mobile/deep-links
background-execution all mobile/background-execution
biometric-authentication all mobile/biometrics
geolocation all mobile/geolocation
bluetooth all mobile/bluetooth
analytics all data/analytics-systems
container-image all deployment/dockerfile

Значения таблицы обозначают файлы .md в каталоге docs/architecture/.

Обоснование

Формальная таблица превращает возможность в проверяемый набор требований и устраняет ручное угадывание применимости.

Проверка

  • двусторонняя автоматическая сверка таблицы с catalog/applicability/architecture.json посредством scripts/check-docs.sh;
  • автоматическое сопоставление type, роли и результата explain;
  • проверка каталога по его JSON Schema.

Исключения

Новая возможность требует изменения схемы и таблицы до использования её как формального признака.