Артефакты
Артефакты обеспечивают хостинг статического HTML для результатов workflow. Загружайте HTML-контент (отчёты, дашборды, визуализации) и получайте публичные URL для распространения. Каждый артефакт обслуживается с заголовками безопасности и брендингом Moira.
Применение
Заголовок раздела «Применение»- Отчёты: Генерация аналитических отчётов с доступом по URL
- Дашборды: Создание интерактивных HTML-дашбордов
- Визуализации: Хостинг графиков и визуализаций данных
- Документация: Публикация сгенерированной документации
- Превью: Демонстрация промежуточных результатов
MCP Tool
Заголовок раздела «MCP Tool»MCP tool artifacts предоставляет 6 действий:
artifacts({ action: "upload", name: "report.html", content: "<html>...</html>" })artifacts({ action: "update", uuid: "abc-123", content: "<html>...</html>" })artifacts({ action: "delete", uuid: "abc-123" })artifacts({ action: "list", limit: 10 })artifacts({ action: "stats" })artifacts({ action: "token", ttlMinutes: 60 })| Действие | Назначение |
|---|---|
upload | Создать артефакт, получить URL |
update | Обновить содержимое артефакта |
delete | Удалить артефакт |
list | Список артефактов с пагинацией |
stats | Статистика использования квоты |
token | Сгенерировать одноразовый токен |
Создание нового HTML-артефакта:
artifacts({ action: "upload", name: "analysis-report.html", content: "<html><body><h1>Отчёт</h1></body></html>"})→ { uuid: "d0a925d6-7dd8-49ba-b90c-d03b43062d20", url: "https://static.moiraqq.com/d0a925d6-7dd8-49ba-b90c-d03b43062d20.html", name: "analysis-report.html", size: 52, expiresAt: "2024-03-01T10:00:00Z" }Опциональный executionId связывает артефакт с выполнением workflow.
Замена содержимого существующего артефакта:
artifacts({ action: "update", uuid: "d0a925d6-7dd8-49ba-b90c-d03b43062d20", content: "<html><body><h1>Обновлённый отчёт</h1></body></html>"})Получение списка артефактов с пагинацией:
artifacts({ action: "list", limit: 10, offset: 0 })→ { artifacts: [{ uuid: "d0a925d6-...", url: "https://static.moiraqq.com/...", name: "report.html", size: 1024, createdAt: "2024-01-15T10:00:00Z" }], total: 5 }| Лимит | Значение |
|---|---|
| Макс. размер файла | 5 МБ |
| Всего хранилища | 100 МБ на юзера |
| Макс. артефактов | 50 на юзера |
| TTL по умолчанию | 30 дней |
Проверка использования квоты через stats:
artifacts({ action: "stats" })→ { totalArtifacts: 5, totalSize: 51200, storageLimit: 104857600, countLimit: 50, storageUsedPercent: 0.05, countUsedPercent: 10 }Токены загрузки
Заголовок раздела «Токены загрузки»Генерация одноразовых токенов для HTTP API загрузки. Полезно для CI/CD пайплайнов или внешних инструментов, которые не могут использовать MCP напрямую.
artifacts({ action: "token", ttlMinutes: 30 })→ { token: "xyz-789", expiresAt: "2024-01-15T10:30:00Z", uploadUrl: "https://moiraqq.com/api/public/artifacts/upload/xyz-789" }Загрузка через HTTP:
curl -X POST "https://moiraqq.com/api/public/artifacts/upload/xyz-789" \ -H "Content-Type: application/json" \ -d '{"name": "report.html", "content": "<html>...</html>"}'Токены одноразовые и истекают после указанного TTL.
Безопасность
Заголовок раздела «Безопасность»Артефакты обслуживаются с заголовками безопасности:
| Заголовок | Значение |
|---|---|
| Content-Security-Policy | script-src 'none' |
| X-Content-Type-Options | nosniff |
| Referrer-Policy | strict-origin-when-cross-origin |
| Cache-Control | public, max-age=3600 |
Брендинг
Заголовок раздела «Брендинг»Все артефакты включают футер с брендингом Moira, вставляемый перед </body>:
<div class="moira-branding-footer"> Created with <a href="https://moiraqq.com">Moira</a></div>Интеграция с Workflow
Заголовок раздела «Интеграция с Workflow»Паттерн Workspace
Заголовок раздела «Паттерн Workspace»Используйте артефакты с паттерном workspace для организации результатов workflow:
./project-analysis/├── step-1/│ └── data-collection.md├── step-2/│ └── analysis.md└── artifacts/ ├── dashboard.html # → загрузить как артефакт └── summary-report.html # → загрузить как артефактСвязь с Execution
Заголовок раздела «Связь с Execution»Передайте executionId при загрузке для связи артефактов с выполнением workflow:
artifacts({ action: "upload", name: "execution-report.html", content: "...", executionId: "exec-abc-123"})Связанные артефакты отображаются в UI инспектора выполнений.
Артефакты управляются через веб-интерфейс на странице /app/artifacts:
- Просмотр всех артефактов с именем, размером, URL и датой истечения
- Загрузка новых артефактов с HTML-редактором
- Редактирование содержимого существующих артефактов
- Копирование публичного URL в буфер обмена
- Открытие артефактов в новой вкладке
- Удаление артефактов
- Мониторинг использования квоты с визуальным индикатором
Связанные темы
Заголовок раздела «Связанные темы»- Справочник MCP Tools — tool
artifactsсо всеми 6 действиями - Создание Workflow — паттерн Workspace для организации результатов