type: standard
aspect: naming
title: "Именование в DATASPACE и BACKUPSPACE"
version: 0.1.0
date: 2026-03-30
status: draft
related: naming-workspace.md
ЧЕРНОВИК — не применять до финализации
Стандарт описывает именование в двух хранилищах вне git:
| Хранилище | Mount | S3 bucket | Содержимое |
|---|---|---|---|
| DATASPACE | /mnt/beget-s3 |
beget-s3 |
Данные проектов (xlsx, csv, images, exports) |
| BACKUPSPACE | /mnt/beget-infra |
beget-infra |
Резервные копии всей платформы |
Не описывает:
- $WORKSPACE (git-репозиторий) → naming-workspace.md
- Имена таблиц и колонок в БД → naming-database.md
| Тип | Форматы | Особенности именования |
|---|---|---|
| Прайс-листы | .xlsx, .xls |
Источник + дата |
| Выгрузки / экспорты | .csv, .xlsx |
Источник + тема + дата |
| Фото и медиа | .jpg, .png, .webp |
ID товара или артикул |
| Документы | .pdf, .docx |
Тема + дата или номер |
| Архивы | .zip, .tar.gz |
Содержимое + дата |
| Данные из 1С | .xml, .xlsx, .json |
Тип выгрузки + дата |
Для файлов с временны́м контекстом (прайсы, выгрузки, отчёты):
{source}_{YYYY-MM-DD}.{ext}
{source}_{YYYY-MM-DD}_{suffix}.{ext}
| Часть | Описание | Пример |
|---|---|---|
source |
Источник: поставщик, система, сервис | jf, maxsem, ozon, 1c |
YYYY-MM-DD |
Дата файла (ISO 8601) | 2026-03-30 |
suffix |
Уточнение (опционально) | orders, prices, full |
ext |
Расширение | xlsx, csv |
✅ jf_2026-03-30.xlsx
✅ ozon_2026-03-30_orders.csv
✅ maxsem_2026-03-15_prices.xlsx
✅ 1c_2026-03-30_export.xml
❌ MASTER_PRICE_LIST (1).xlsx (пробелы, скобки)
❌ 16.10 Прайс_Maxsem_SPB.xlsx (кириллица, пробелы, точки в имени)
❌ new_prices.xlsx (нет даты — неясно когда)
Статичные данные (конфиги, справочники, медиа):
{entity}-{detail}.{ext} — справочники
{article}.{ext} — медиа товаров
✅ categories-mapping.csv
✅ brands-list.csv
✅ 12345-front.jpg (артикул-ракурс)
✅ 12345-back.jpg
❌ photo1.jpg (неинформативно)
❌ Фото товара.jpg (кириллица, пробелы)
lowercase + дефисы или подчёркивания* ← файлы данных
*Подчёркивания допустимы в именах файлов данных (источник_дата) — это соглашение из практики работы с табличными данными. В остальных частях платформы подчёркивания запрещены.
Язык — только латиница (оба хранилища):
✅ jf_2026-03-30.xlsx
✅ ozon-orders.csv
❌ Прайс_JF_2026.xlsx (кириллица запрещена)
❌ база/ (кириллица в путях запрещена)
$DATASPACE/
├── projects/ ← Данные бизнес-проектов
│ └── org/
│ ├── pirotehnika/
│ └── lideravto/
│
└── archive/ ← Архивные данные (устаревшее)
projects/org/{project}/
│
├── _inbox/ ← Входящие: необработанные файлы от внешних источников
├── prices/ ← Прайс-листы поставщиков (если применимо)
│ └── {supplier}/ ← По поставщику
├── images/ ← Фото и медиа
├── products/ ← Данные номенклатуры и товаров
│ ├── 1c/ ← Выгрузки из 1С
│ └── archive/ ← Устаревшие версии
├── exports/ ← Выгрузки для внешних систем (маркетплейсы, аналитика)
└── archive/ ← Архив обработанных данных
Обязательные папки: _inbox/, archive/
Рекомендуемые (по типу бизнеса): prices/, images/, products/, exports/
_inbox/ → {тематическая папка}/ → archive/{YYYY-MM}/
(новый) (в работе) (обработан)
| Папка | Состояние | Правило |
|---|---|---|
_inbox/ |
Новый / необработанный | Попадает автоматически (upload, API) |
prices/, exports/ и т.д. |
В работе | Перемещается после проверки |
archive/{YYYY-MM}/ |
Обработан / устарел | Перемещается при замене новой версией |
prices/
├── jf/ ← ПФ «ЖФ»
├── maxsem/ ← Максем
├── piroff/ ← Пиров
└── archive/ ← Устаревшие прайсы
Имена папок поставщиков — транслитерация в lowercase:
✅ jf/, maxsem/, salutrossii/
❌ ЖФ/, Maxsem_SPB/
$BACKUPSPACE/
└── {server}/ ← Имя инстанса (dev-pro, worker, etc.)
└── backup/
├── L0-SECRETS/ ← SSH ключи, credentials
├── L1-SYSTEM/ ← Системные файлы
├── L2-DOCKER/ ← Docker volumes
├── L3-WORKSPACE/ ← Исходный код (git bundle)
│ └── git-bundle/
├── L4-CLAUDE/ ← Claude конфиги и память
│ ├── claude-md/ ← Версии CLAUDE.md
│ └── settings/ ← settings.json
├── L5-STATE/ ← Состояние (опционально)
├── golden/ ← Эталонные ручные копии
├── postgres/ ← Дампы PostgreSQL
└── restic/ ← Restic repository (S3 native)
Принцип: имя бэкапа должно однозначно определять — что, откуда, когда.
{type}-{source}-{YYYYMMDD}-{HHMM}.{ext}
| Тип бэкапа | Формула | Пример |
|---|---|---|
| CLAUDE.md | CLAUDE-{branch}-{YYYYMMDD}-{HHMM}.md |
CLAUDE-main-20260330-0603.md |
| Git bundle (полный) | workspace-full-{YYYYMMDD}.bundle |
workspace-full-20260330.bundle |
| Git bundle (инкремент) | workspace-incr-{YYYYMMDD}.bundle |
workspace-incr-20260330.bundle |
| PostgreSQL дамп | {dbname}-{YYYYMMDD}-{HHMM}.sql |
platform-20260330-0400.sql |
| Workspace tar | workspace-{YYYYMMDD}-{HHMM}.tar.gz |
workspace-20260330-0500.tar.gz |
| Docker volume | {volume}-{YYYYMMDD}.tar.gz |
postgres-data-20260330.tar.gz |
Правила:
- Дата — YYYYMMDD (без дефисов, компактно)
- Время — HHMM (UTC)
- Имена — только латиница и дефисы
- Расширение — строго по типу (.sql, .bundle, .tar.gz)
Особый статус — ручные проверенные снимки:
golden/
├── CLAUDE-golden-{YYYYMMDD}.md ← известно рабочий CLAUDE.md
└── workspace-golden-{YYYYMMDD}.tar.gz ← известно рабочий workspace
| Тип | Частота | Ротация |
|---|---|---|
| CLAUDE.md | каждые 6ч | сегодня: все; вчера: 1; 7-30д: воскресенья; 30-365д: конец месяца |
| PostgreSQL | каждые 4ч | последние 7 дней полностью |
| Git bundle | полный: вс; инкремент: пн-сб | полный: 4 последних; инкременты: текущая неделя |
| Workspace tar | ежедневно 05:00 | последние 7 дней |
| Restic | каждые 6ч | 24h hourly, 7d daily, 4w weekly, 6m monthly |
Ключевой принцип: иерархия путей одинакова в обоих хранилищах.
$WORKSPACE/projects/org/pirotehnika/ ← код, конфиги, документация
$DATASPACE/projects/org/pirotehnika/ ← данные, медиа, выгрузки
Если в WORKSPACE есть projects/org/lideravto/ — в DATASPACE тоже projects/org/lideravto/.
| Артефакт | $WORKSPACE (git) | $DATASPACE (S3) |
|---|---|---|
| Код, скрипты | ✅ | ❌ |
| Документация (.md) | ✅ | ❌ |
| CSV < 100KB | ✅ допустимо | ✅ |
| CSV > 100KB | ❌ | ✅ |
| Excel (.xlsx) | ❌ | ✅ |
| Фото, медиа | ❌ (> 50KB) | ✅ |
| Конфиги (.yaml) | ✅ | ❌ |
| Дампы БД | ❌ | ✅ (BACKUPSPACE) |
jf_2026-03-30.xlsx). Зафиксировать как исключение или переходить на дефисы?_inbox/ — почему underscore-prefix? Это специальная семантика или исторически? Менять на inbox/?archive/{YYYY-MM}/?| Документ | Связь |
|---|---|
| naming-workspace.md | Именование в $WORKSPACE |
| lifecycle-data.md | Жизненный цикл: inbox→work→archive |
| policy-code-data-separation.md | Что куда класть |
| format-file-types.md | 11 классов типов файлов |
| format-data.md | Когда какой формат |
| structure-workspace.md | Структура WORKSPACE/DATASPACE |
Версия: 0.1.0 (черновик)
Дата: 2026-03-30