Farmchel / Motiv Documentation Center
Внутренняя база знаний для ops команды

MSP Docs

Runbooks, доступы, окружения, релизы и инциденты для внутренних операций.

Версия 1.1.0 Изменено: 2026-04-18 Status: In progress Owner: Platform / MSP

Структура проекта (Architecture map)

Farmchel / Motiv — Laravel + Filament internal platform. Ниже практическая карта кода: где что находится и куда вносить изменения.

Описание страниц админки, URL вида /admin/… и состава левого меню вынесено в отдельный документ: Структура проекта (/docs/project).

Сокращённое дерево

app/
  Filament/
    Pages/                 # Custom pages, включая MotivDashboard
    Widgets/               # Dashboard widgets (Motiv/*)
    Resources/             # CRUD слой сущностей
    RelationManagers/      # Notes/Audit relation managers
    Imports/               # CSV/XLSX importers
    Exports/               # Exporters для таблиц
  Models/                  # Domain models + relations
  Models/Concerns/         # Shared traits (notes/audit behavior)
  Services/                # Domain/service logic (dashboard signals)
  Http/
    Controllers/Api/V1/    # API controllers (versioned)
    Requests/Api/V1/       # API validation (Form Requests)
    Resources/Api/V1/      # API response transformers
    Middleware/            # Token ability middleware
  Policies/                # Role-aware authorization
  Support/                 # UI/status mapping helpers
  Providers/               # Panel providers, app providers

database/migrations/       # Schema evolution (fields, notes/audit, import/export infra, API logs)
resources/views/
  docs/                    # Documentation center (Business/API/MSP)
  filament/widgets/        # Custom widget views
routes/web.php             # Web routes, включая /docs/*
routes/api.php             # Internal API routes (/api/v1/*)
config/                    # Runtime config
public/                    # Web root/static entry
storage/                   # logs, exports/import files
tests/                     # Unit/Feature tests

Filament layer: где искать dashboard и админ-логику

Pages

app/Filament/Pages. Здесь находится MotivDashboard и его режимы отображения.

Widgets

app/Filament/Widgets/Motiv. KPI, Focus, Requires Attention, Activity и executive summary.

Resources

app/Filament/Resources/*. Формы, таблицы, фильтры, actions по сущностям.

Imports/Exports

app/Filament/Imports и app/Filament/Exports. Batch-загрузка и выгрузка данных.

Domain map (core сущности)

СущностьГде модельРоль в workflow
Applicationsapp/Models/StoreApp.phpCore портфель: owner/company/strategy/status.
Companiesapp/Models/Company.phpОрганизационный контекст и контакты.
Contactsapp/Models/Contact.phpOwnership-коммуникация и связь с company/app/strategy.
Strategiesapp/Models/Strategy.phpОперационный слой исполнения и responsible.
Keywordsapp/Models/Keyword.phpASO/маркетинговая семантика и приоритеты.
Analyticsapp/Models/ClickAnalyticsRow.phpКлики/метрики и status signals.
Notesapp/Models/Note.phpInternal operational comments с автором и временем.
AuditLogsapp/Models/AuditLog.phpИстория изменений (кто/когда/что).

Operational data flow

  • Сущности создаются вручную через ресурсы или батч-импортом через ImportAction.
  • Ownership и status задаются в ресурсах и проверяются dashboard signal-блоками.
  • Notes и Audit фиксируют контекст изменений и решения команды.
  • Analytics rows питают alerts, top-blocks и срезы по presets.

Что менять где (practical map)

ЗадачаКуда идти
Изменить дашбордapp/Filament/Pages/MotivDashboard.php + app/Filament/Widgets/Motiv/* + app/Services/MotivCommandCenterService.php
Изменить импортapp/Filament/Imports/* + header actions в Resources/*/Pages
Изменить экспортapp/Filament/Exports/* + ExportAction в нужном Resource
Добавить поле в сущностьmigration → model fillable/casts → resource form/table/filters → dashboard integration (если нужно)
Изменить status mappingapp/Support/MotivUi.php + resource options/filters + service rules
Изменить docs centerresources/views/docs/* + routes/web.php (без смены URL)
Изменить API layerroutes/api.php + app/Http/Controllers/Api/V1/* + app/Http/Requests/Api/V1/* + app/Http/Resources/Api/V1/*
Операционный просмотр API логовapp/Filament/Resources/ApiRequestLogs/* + app/Http/Controllers/Api/V1/AdminApiLogController.php

Критичные зоны (осторожно)

Не ломать без проверки:
  • Filament `/admin` resources и их route generation.
  • Import/export инфраструктуру (таблицы imports, failed_import_rows, exports).
  • Ownership/status сигнализацию в dashboard service layer.
  • Notes/Audit traits и relation managers (shared behavior).
  • Документированные URL: /docs/business, /docs/project, /docs/api, /docs/strategies, /docs/msp.

Соглашения по проекту

  • Бизнес-логика сигналов и агрегатов — в services/support, а не в Blade.
  • Resource actions должны быть operational: либо рабочие, либо скрытые.
  • Новые сущности, требующие traceability, подключаются к notes/audit слою.
  • Изменения статусов всегда согласуются с `MotivUi` и ресурсными фильтрами.

Назначение раздела MSP

MSP docs — внутренний operations/runbook hub: окружения, доступы, релизы и восстановление сервиса.

Раздел для platform/ops и тех, кто дежурит по инцидентам.

Environments

СредаНазначение
localРазработка и отладка через Laragon.
developmentИнтеграционные проверки функций.
stagingПроверка релиз-кандидатов перед production.
productionРабочее окружение команды.

Access / permissions

  • Доступы выдаются по заявке owner/ops manager.
  • Секреты не хранятся в репозитории и личных чатах.
  • Revocation выполняется при смене роли/уходе сотрудника.

API setup / auth model

  • API auth основан на Laravel Sanctum токенах: выдача/ревокация через /api/v1/auth/*.
  • Ability checks: middleware в app/Http/Middleware/EnsureTokenAbility.php.
  • Policy checks: role-aware policy слой в app/Policies/* (включая ApiRequestLogPolicy).
  • API request audit: app/Http/Middleware/LogApiRequest.php + таблица api_request_logs.

Local bootstrap: после php artisan migrate --seed создаётся dev admin test@example.com. Пароль по умолчанию admin12345, можно переопределить через MOTIV_DEV_ADMIN_PASSWORD.

Кто видит API logs: только admin/manager с активным статусом и корректной ability (для API endpoint: logs:read).

Deploy / release process

  1. Pre-check: миграции, health endpoint, import/export infra.
  2. Deploy: код + зависимости + migrate.
  3. Post-check: /admin, /docs, dashboard, import/export smoke test.
  4. Rollback: откат релиза и фиксация инцидента в runbook.

Runbooks

Админка не открывается

Проверить APP_URL, auth, DB connection, логи и route cache.

Миграция не применилась

Проверить блокировки, batch status, повторить migrate --force.

Импорт падает

Проверить таблицы imports/failed_import_rows, mapping и validation errors.

Экспорт падает

Проверить таблицу exports, storage link, права на диск.

Нет свежих кликов

Проверить импортный пайплайн, period presets и source data feed.

Broken ownership links

Проверить null owner/company/strategy через Requires Attention.

Monitoring / health checks

  • /up должен быть доступен.
  • Проверка доступности `/admin` и `MotivDashboard`.
  • Ошибки из логов по import/export и DB connectivity.

Incident handling

  • Инцидент: недоступность админки, массовый import/export fail, потеря свежих данных.
  • Уведомляются: owner, ops manager, backend responsible.
  • После устранения — короткий postmortem и action items.

Backup / recovery principles

  • Бэкапы базы должны быть регулярными и проверяемыми на восстановление.
  • Recovery-план должен включать DB restore + health verification + dashboard smoke test.