architect/standards/7-typology/typology-entity-types.md

type: standard
aspect: typology
title: "Стандарт: Сущность (Структура)"
version: 1.0.0
date: 2026-02-19
status: active


Стандарт: Сущность (Структура)

Версия: 1.0.0
Тип системы: Структура
Вопросов: 4


ОПРЕДЕЛЕНИЕ

Сущность — атомарный элемент системы, описывающий устройство без поведения.


ПОСЛЕДОВАТЕЛЬНОСТЬ ВОПРОСОВ

ЧТО? → КТО? → ГДЕ? → СКОЛЬКО?
  │      │       │        │
 Тип   Владелец Хранение Размер

КАК, КОГДА — неприменимы (нет динамики).


ОБЯЗАТЕЛЬНЫЕ ПОЛЯ

Вопрос Поле Описание
ЧТО? type Тип сущности
КТО? owner Кто управляет
ГДЕ? location Где хранится
СКОЛЬКО? attributes Характеристики

ТИПЫ СУЩНОСТЕЙ

Инфраструктура

Сущность Описание Хранение
Server Физ/вирт сервер infra/@infra-{name}/
Storage Облачное хранилище infra/infra-{name}/
Workstation ПК оператора infra/@infra-home-pc/

Данные

Сущность Описание Хранение
Hub Центральное хранилище Beget S3
ProjectData Данные проекта hub/projects/{name}/
Backup Резервная копия hub/_backup/

Код

Сущность Описание Хранение
Project Бизнес-проект /{business}/
Site Веб-приложение {business}/{domain}/
Script Исполняемый код */scripts/

Конфигурация

Сущность Описание Формат
Index Метаданные папки index.yaml
INFRA Метаданные инфры INFRA.yaml
Config Настройки .env, *.yaml

ШАБЛОН ОПИСАНИЯ

entity: "{название}"
type: "{тип}"

# ЧТО? - Определение
definition: |
  Что это такое

# КТО? - Владелец
owner:
  role: "Роль, управляющая сущностью"

# ГДЕ? - Хранение
location:
  path: "путь/к/сущности"
  format: "yaml|md|folder"

# СКОЛЬКО? - Атрибуты
attributes:
  - name: "атрибут1"
    type: "string"
    required: true
  - name: "атрибут2"
    type: "number"
    required: false

ПРИМЕРЫ

Server (Сервер)

entity: "DEV-PRO"
type: "server"

definition: "VPS сервер для разработки"

owner:
  role: "Инфра"

location:
  path: "infra/@infra-dev-pro/"
  format: "folder + INFRA.yaml"

attributes:
  - name: "ip"
    value: "91.218.142.168"
  - name: "ram"
    value: "4GB"
  - name: "disk"
    value: "80GB"
  - name: "os"
    value: "Ubuntu 22.04"

Hub (Хранилище данных)

entity: "Hub"
type: "storage"

definition: "Центральное хранилище всех данных"

owner:
  role: "Система"

location:
  path: "$DATASPACE/ (сервер), ~/BegetS3/ (PC)"
  format: "S3 bucket"

attributes:
  - name: "provider"
    value: "Beget"
  - name: "protocol"
    value: "S3"
  - name: "access"
    value: "rclone FUSE mount"

Project (Проект)

entity: "pirotehnika"
type: "project"

definition: "Бизнес-проект интернет-магазина"

owner:
  role: "Проектор"

location:
  path: "$WORKSPACE/pirotehnika/"
  format: "folder + index.yaml"

attributes:
  - name: "domain"
    value: "pirotehnika.spb.ru"
  - name: "stack"
    value: "OpenCart, PHP"
  - name: "hub"
    value: "hub/projects/pirotehnika/"

ИМЕНОВАНИЕ

Тип Формат имени Пример
Бизнес-проект lowercase pirotehnika
Сайт domain.tld pirotehnika.spb.ru
Инфра (свой) @infra-{name} @infra-dev-pro
Инфра (чужой) @remote-{provider} @remote-beget
Хранилище infra-{type}-{provider} infra-s3-beget
Документ UPPER_CASE.md ENTITIES.md
AI-агент kebab-case.ai.md coder.ai.md

ЖИЗНЕННЫЙ ЦИКЛ

Создание → Использование → Архивация → Удаление
    │            │              │           │
  index.yaml  Работа      archive/      rm -rf

СВЯЗИ


Версия: 1.0.0