type: standard
aspect: typology
title: "Стандарт: Сервис (Обеспечивающая система)"
version: 1.0.0
date: 2026-02-19
status: active
Версия: 1.0.0
Тип системы: Обеспечивающая
Вопросов: 7
Сервис — обеспечивающая система, предоставляющая функциональность другим системам через API.
ЧТО? → КТО? → КАК? → ЧЕМ? → ГДЕ? → КОГДА? → СКОЛЬКО?
│ │ │ │ │ │ │
Компон. Потреб. Протокол Стек Endpoint Lifecycle Лимиты
ПОЧЕМУ/ЗАЧЕМ = принципы и миссия сервиса (указываются отдельно).
| Поле | Описание | Обязательно |
|---|---|---|
name |
Название сервиса | ДА |
type |
CODE (subtype: service) | ДА |
status |
active, development, draft | ДА |
version |
Версия | ДА |
parent |
Родительский проект | ДА |
children |
Дочерние модули | ДА |
depends_on |
Зависимости | ДА |
provides_to |
Что предоставляет | ДА |
hub |
Путь в Hub (S3) | ДА |
description |
Краткое описание | ДА |
| Вопрос | Поле | Описание | Обязательно |
|---|---|---|---|
| ЧТО? | components |
Из чего состоит | Рекомендуется |
| КТО? | consumers |
Кто использует | Рекомендуется |
| КАК? | protocol |
API, протоколы | Опционально |
| ЧЕМ? | stack |
Технологии | Опционально |
| ГДЕ? | endpoints |
URL, порты | Опционально |
| КОГДА? | lifecycle |
Запуск, остановка | Опционально |
| СКОЛЬКО? | limits |
Лимиты, квоты | Опционально |
Дополнительно:
| Поле | Описание |
|------|----------|
| principles | ПОЧЕМУ так устроен |
| mission | ЗАЧЕМ существует |
{service}/
├── index.yaml ← Метаданные
├── CLAUDE.md ← Инструкции для AI
├── design/ ← Архитектура
├── solution/ ← Код, реализация
├── management/ ← TODO, STATUS
└── reports/ ← Выходные данные
# ═══════════════════════════════════════════
# БАЗОВЫЕ ПОЛЯ (обязательно)
# ═══════════════════════════════════════════
name: "{название}"
type: "CODE"
subtype: "service"
status: "development"
version: "1.0.0"
parent: "../"
children: []
depends_on:
- "infra/@server/"
- "../_shared/"
provides_to:
- "../@other-module/"
hub: "projects/{project}/{service}/"
description: "Краткое описание сервиса"
# ═══════════════════════════════════════════
# СМЫСЛОВЫЕ ПОЛЯ (рекомендуется)
# ═══════════════════════════════════════════
# ЧТО? - Компоненты
components:
- name: "api"
description: "REST API"
# КТО? - Потребители
consumers:
- "Система 1"
# ═══════════════════════════════════════════
# СМЫСЛОВЫЕ ПОЛЯ (опционально)
# ═══════════════════════════════════════════
# КАК? - Протокол
# protocol:
# type: "REST"
# format: "JSON"
# ЧЕМ? - Стек
# stack:
# runtime: "Docker"
# language: "Python"
# ГДЕ? - Endpoints
# endpoints:
# internal: "localhost:8080"
# КОГДА? - Lifecycle
# lifecycle:
# start: "docker-compose up -d"
# СКОЛЬКО? - Лимиты
# limits:
# requests: "100/min"
# БАЗОВЫЕ ПОЛЯ
name: "PIM Service"
type: "CODE"
subtype: "service"
status: "development"
version: "1.0.0"
parent: "../"
children: []
depends_on:
- "infra/@dev-pro.server/"
- "../_shared/"
provides_to:
- "../@pirotehnika.spb.ru/"
- "../@ozon.api/"
hub: "projects/pirotehnika/pim/"
description: "Product Information Management + интеграция 1C"
# СМЫСЛОВЫЕ ПОЛЯ
components:
- name: "drupal"
description: "CMS для управления товарами"
- name: "api"
description: "REST API для интеграций"
consumers:
- "Сайт @pirotehnika.spb.ru"
- "Интеграция @ozon.api"
Deploy → Start → Running → Healthcheck → Stop → Update → Restart
│ │ │
КОГДА ГДЕ СКОЛЬКО
Версия: 1.0.0