Минимальные профили компонентов¶
Требования применяются к выбору нормативных документов в
.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.
Исключения¶
Новая возможность требует изменения схемы и таблицы до использования её как формального признака.