Портал документации TeamStorm
Table of Contents
Что такое TeamStorm? ↵
Что такое TeamStorm?
TeamStorm — это современная система управления совместной работой, которая помогает компаниям любого размера и любой индустрии достигать стратегических целей, управлять рабочими процессами и выстраивать эффективное взаимодействие всех команд, от разработки до отдела продаж.
Документы TeamStorm
Информация о TeamStorm:
Руководства:
- Руководство системного администратора TeamStorm
- Руководство администратора TeamStorm по добавлению лицензий и пользователей
- Руководство пользователя
- Руководство по импорту данных из других систем
Release Notes:
API:
Ended: Что такое TeamStorm?
Информация о TeamStorm ↵
Описание процессов, обеспечивающих поддержание жизненного цикла ПО TeamStorm
Назначение и статус документа
Настоящий документ призван обеспечить уровень сопровождения и регламентирует взаимодействие Заказчика и ООО «ТимШторм» (далее Исполнителя) в процессе эксплуатации системы управления совместной работой TeamStorm , определяет участников этого процесса, их функции и ответственность.
Действие настоящего регламента распространяется на:
- специалистов Заказчика, использующих систему для выполнения своих должностных обязанностей;
- специалистов Заказчика, ответственных за эксплуатацию системы управления совместной работой TeamStorm ;
- специалистов Исполнителя, ответственных за техническую поддержку, администрирование и сопровождение системы управления совместной работой TeamStorm .
Описание процессов жизненного цикла системы управления совместной работой TeamStorm
Поддержание жизненного цикла системы управления совместной работой TeamStorm осуществляется за счет сопровождения системы. Сопровождение системы также включает проведение модернизаций программного кода системы по заявкам заказчика с целью исправления ошибок в системе в случае, если это установлено договором (пакетами услуг «Стандартный» и «Расширенный» предусмотрено плановое обновление системы, куда входит исправление ошибок), восстановление данных и консультации по вопросам эксплуатации, установки и переустановки системы.
Сопровождение системы необходимо для обеспечения:
- отсутствия простоев в работе предприятия Заказчика по причине невозможности функционирования системы (аварийная ситуация, ошибки в работе системы);
- обеспечения гарантий корректного функционирования системы и дальнейшего развития её функциональности.
Обозначенные цели должны быть достигнуты путем:
- консультирования пользователей и администраторов системы по вопросам эксплуатации (по телефону, факсу, электронной почте и другим каналам связи) или письменно по запросу Заказчика;
- обеспечение Заказчика новыми версиями системы по мере их выхода (в рамках пакетов услуг «Стандартный» и «Расширенный», согласно Таблице 1);
- обеспечение Заказчика актуальными версиями эксплуатационной документации;
- устранение ошибок в случае их выявления при работе с системой.
Перечень услуг по сопровождению
Компания ООО «ТимШторм» предоставляет следующие пакетные варианты сопровождения системы управления совместной работой TeamStorm , приведенные в Таблице 1.
Варианты сопровождения системы TeamStorm
Стандартный пакет
- Консультирование посредством e-mail, телефона и online-мессенджера сотрудника Заказчика в рабочее время в рабочие дни с 10 до 18 часов UTC +3:00 по вопросам функционирования системы. Ответ в течение 8 рабочих часов с момента получения запроса со стороны Заказчика.
- Помощь в настройке и администрировании системы.
- Обработка кейсов и инцидентов, случившихся в результате действий пользователя, консультирование по их устранению при условии предоставления удаленного доступа Исполнителю.
- Предоставление обновлений системы управления совместной работой TeamStorm (обновления — это релизы системы с устраненными дефектами системы, а также выпуск новых функциональных возможностей и новых модулей). Расчётный период выхода обновлений – ежеквартально в течение года.
Расширенный пакет
- Выделенный персональный консультант службы поддержки в рабочее время в рабочие дни с 10 до 18 часов UTC +3:00.
- Консультирование посредством e-mail, телефона и online-мессенджера сотрудника Заказчика в рабочее время в рабочие дни с 10 до 18 часов UTC +3:00 по вопросам функционирования системы. Ответ в течение 8 рабочих часов с момента получения запроса со стороны Заказчика.
- Обработка кейсов и инцидентов, случившихся в результате действий пользователя, консультирование по их устранению, при условии предоставления удаленного доступа Исполнителю.Предоставление обновлений системы TeamStorm (обновления — это релизы системы с устраненными дефектами системы, а также выпуск новых функциональных возможностей и новых модулей). Расчётный период выхода обновлений – ежеквартально в течение года.
- Приоритетное рассмотрение заявок Заказчика специалистами Исполнителя, прием задачи в работу в течение 8 рабочих часов с момента регистрации заявки.
- Один выезд специалиста к Заказчику в месяц в пределах г. Москвы продолжительностью не более 8 часов или проведение одной онлайн-встречи в месяц посредством видеоконференцсвязи не более 8 часов с целью выяснения и устранения проблем или консультаций по вопросам функционирования системы.
Системное обучение
- Проведение обучения сотрудников Заказчика силами Исполнителя для повышения квалификации и ознакомление с системой управления совместной работой TeamStorm. По желанию Заказчика обучение может быть предоставлено очно с выездом специалиста компании ООО «ТимШторм», либо в виде онлайн видеоконференций.
- Предоставление сотрудникам Заказчика:
- учебных материалов в электронном или печатном виде;
- сертификатов о прохождении обучения системы управления совместной работой TeamStorm.
Организация сопровождения со стороны Заказчика
Ответственное за сопровождение системы лицо со стороны Заказчика имеет полномочия и решает следующие вопросы:
- контроль регистрации всех запросов сотрудников Заказчика по вопросам сопровождения системы;
- взаимодействие со специалистами Исполнителя по вопросам сопровождения системы;
- согласование отчетов и визирование Актов сдачи-приемки оказанных услуг.
Организация сопровождения со стороны Исполнителя
Консультант службы технической поддержки проводит первичную классификацию запросов и, при необходимости, их эскалацию.
Непосредственное консультирование Пользователей и исполнение запросов Заказчика осуществляют специалисты Исполнителя.
Информация о назначении ответственного консультанта службы технической поддержки, контактных данных и последующих изменениях сообщается Заказчику в письменном виде посредством электронной почты.
Обеспечение процесса сопровождения
Для обеспечения надлежащего качества процесса сопровождения системы специалисты Исполнителя должны обладать необходимой полнотой информации о ситуации, приведшей к проблеме. В случае если специалисты Заказчика не могут предоставить необходимую информацию, специалисты Исполнителя могут запросить у Заказчика предоставление полномочий на просмотр, изменение и удаление данных в системе. Эти полномочия равны полномочиям специалистов Заказчика, ответственных за администрирование системы. Исполнитель гарантирует конфиденциальность информации Заказчика, полученной в процессе сопровождения на усмотрение Заказчика.
Для надлежащего уровня обеспечения процесса сопровождения системы Исполнитель привлекает к работе компетентных специалистов и обеспечивает необходимый уровень коммуникации специалистов с ответственным за сопровождение системы лицом со стороны Заказчика
Совершенствование системы
Система регулярно развивается и дорабатывается: в ней появляются новые дополнительные возможности, оптимизируется производительность, обновляется интерфейс.
Пользователь может повлиять на совершенствование продукта. Для этого необходимо направить обращение по усовершенствованию на электронную почту технической поддержки по адресу support@teamstorm.io или через портал поддержки https://support.teamstorm.io
Обращение будет рассмотрено и, в случае признания его целесообразности, реализация будет запланирована, и в систему могут быть внесены соответствующие изменения.
Техническая поддержка
Техническая поддержка включает в себя регулярные Услуги по администрированию, сопровождению и поддержке актуального состояния (уровня) систем (в пределах ответственности), базы данных и сервисных программ.
Порядок предоставления услуг
Регистрация и назначение запросов
При возникновении проблемы по работе с системой или при необходимости получения информации Пользователь в первую очередь обращается к ответственному за эксплуатацию системы лицу Заказчика. По возможности ответственное лицо самостоятельно отвечает на вопросы Пользователя и устраняет возникшую проблему или предоставляет необходимую информацию без обращения к Исполнителю.
Вопросы Пользователей, ответы на которые содержатся в руководствах пользователя и методических инструкциях, должны рассматриваться ответственным за сопровождение системы лицом со стороны Заказчика самостоятельно.
Консультации пользователям могут быть оказаны Исполнителем устно по телефону или письменно по электронной почте или online-мессенджеру.
В случае невозможности самостоятельно разрешить проблему, ответственное лицо Заказчика обращается к специалисту технической поддержки Исполнителя и оформляет письменную заявку на предоставление Услуги (именуемую далее «Запрос»), связанную с обслуживанием систем, доработкой программного обеспечения, с устранением ошибок или решением других проблем, мешающих нормальному функционированию системы. В случае необходимости Исполнитель имеет право запросить дополнительную информацию по запросу, изменить его сложность и, соответственно, срок ответа. В случае потери актуальности или нечетко сформулированного Запроса Исполнитель может отклонить Запрос. Специалист технической поддержки Исполнителя регистрирует Запрос и передает его на исполнение специалисту Исполнителя.
У ответственного лица Заказчика есть возможность запрашивать данные о:
- статусе Запроса;
- приоритете и плановом сроке выполнения Запроса.
Запросы Заказчика обрабатываются по мере их поступления. В случае если в момент поступления Запроса Консультант работает с другим Запросом, то Запрос ставится «в очередь». Порядок обработки Запросов определяется их приоритетом.
В случае очень сложных Запросов, требующих глубокой проработки и больших трудозатрат специалистов, Исполнитель имеет право потребовать разбиения Запроса на несколько этапов и изменения сроков рассмотрения Запроса.
Для «Расширенного» пакета услуг подразумевается наивысший приоритет выполнения Запросов.
Время предоставления услуг
Услуги предоставляются Заказчику с 10:00 до 18:00 часов UTC +3:00 в рабочие дни, которые устанавливаются Трудовым Кодексом Российской Федерации и соответствующими Постановлениями Правительства РФ на текущий календарный год.
Исполнитель предоставляет Услуги на основе утвержденного Регламента, Соглашения об уровне сервиса и графиков работ по модернизации функциональных блоков, согласованных с Заказчиком. Если работы, проводимые Исполнителем по запросу Заказчика, приводят или могут привести к ухудшению качества предоставления Услуг или к остановке предоставления Услуг, Исполнитель обязан приостановить работы и немедленно уведомить Заказчика о возникшей проблеме.
Все изменения, вносимые Исполнителем в системы, которые могут повлиять на функциональность и работоспособность системы, в обязательном порядке согласовываются с ответственным специалистом Заказчика.
Оказание услуг по доработке системы
В случае заинтересованности Заказчика в расширении функциональности системы TeamStorm , представитель Заказчика направляет свои пожелания в адрес разработчика системы. Далее все пожелания индивидуально согласовываются между Исполнителем и Заказчиком.
Персонал, необходимый для обеспечения поддержки
Создание и развитие системы управления совместной работой TeamStorm выполнялись и осуществляются в настоящий момент силами специалистов ООО «ТимШторм».
Для обеспечения надлежащей поддержки системы в команде Исполнителя присутствуют следующие специалисты:
- разработчики с опытом работы с Microsoft .NET Framework и Microsoft ASP.NET, со знанием языка программирования C# и опытом работы с СУБД MS SQL и PostgreSQL;
- системные администраторы с опытом работы, со знанием средств восстановления баз данных и мониторинга производительности серверов;
- консультанты технической поддержки с опытом работы в системе.
Коллектив разработчиков обладает необходимым набором знаний для работы со всеми компонентами, входящими в состав системы TeamStorm , и для решения прикладных задач. Разработана и поддерживается в актуальном состоянии вся необходимая документация по сопровождению и развитию системы и работе пользователей с системой.
Для работы с системой пользователь должен:
- обладать навыками работы с персональным компьютером на уровне пользователя;
- иметь опыт использования web-браузеров;
- знать свои должностные обязанности;
- изучить руководство пользователя системы.
Для работы с системой администраторы Заказчика должны:
- обладать знанием основ разработки ПО;
- обладать опытом работы с Linux, Bash, Docker;
- изучить руководство администратора системы.
Описание функциональных и технических характеристик ПО TeamStorm
Назначение документа
Документ описывает функциональные характеристики системы управления проектами и совместной работой TeamStorm.
Описание системы
TeamStorm предоставляет возможность организовать совместную работу над проектами в едином цифровом пространстве, помогает обеспечить эффективное взаимодействие всех участников проекта, сфокусировать участников проекта на ключевые результаты и увеличить скорость принятия управленческих решений.
Структура TeamStorm состоит из следующих элементов:
- пространства;
- папки;
- расширения;
- задачи.
TeamStorm обеспечивает выполнение следующих функций:
- создание пространств для управления проектами и просмотр их структуры;
- декомпозиция пространств на папки;
- создание и редактирование задач;
- отслеживание выполнения задач, изменение статуса задач и исполнителя, связывание задач;
- выдача пользователям доступа на созданные пространства;
- фильтрация и поиск задач;
- переключение между представлениями для работы с задачами;
- настройка рабочих процессов с возможностью создавать пользовательские статусы;
- отслеживание списка задач пользователя на рабочем столе.
Функциональные характеристики
Главная страница
На главной странице пользователя отображается:
- список доступных ему пространств;
- список назначенных на него задач.
Элементы управления
В системе доступны следующие элементы управления:
- поле поиска задач по идентификатору и наименованию с выпадающим списком задач;
- переключатели представления типа "Доска" и "Таблица";
- фильтры по наименованию задачи, исполнителю и статусу задачи;
- кнопка и окно создания задачи;
- панель изменения задачи.
Работа с пространствами
В системе доступно создание/удаление пространств и просмотра их структуры. Пространство объединяет проекты и работы, которые влияют на общие целевые показатели организации. Пространство на системном уровне определяет модель доступа и базовые конфигурации содержимого. Принципы выделения пространства принимаются на уровне организации.
В пространстве для каждого типа задачи определен процесс по умолчанию.
На уровне пространства определяются рабочие процессы. В пространстве для каждого типа задачи определен процесс по умолчанию.
Владелец пространства (пользователь, создавший пространство) может предоставлять доступ к данному пространству другим пользователям.
Работа с папками
В системе доступно создание/удаление папок внутри пространства. Папка объединяет задачи со схожими процессами и доступами (например, группировка работы по проектам, продуктам, командам).
Конфигурация рабочих процессов и типов для папки соответствует конфигурации пространства.
Пользователь может создавать вложенные папки.
Работа с задачами
В системе доступно создание задач разных типов — структурированных элементов для управления проектом.
Пользователь может:
- вносить информацию о необходимых действиях для выполнения задачи;
- устанавливать исполнителя задачи;
- изменять статус по мере выполнения задачи и закрывать её;
- добавлять вложения (файлы);
- выстраивать иерархию задач, добавляя вложенные задачи;
- оставлять комментарии к задаче;
- создавать к задачам пользовательские атрибуты типов «строка», «тег», «список», «дата», «число»;
- связывать задачи, выстраивая между ними отношения типа «зависимость», «блокирование», «дублирование»;
- указывать рабочий процесс, по которому должна проходить задача.
Представления типа "Доска" и "Таблица"
Вся информация о выполнении задач отслеживается с помощью основных представлений — "Доска" и "Таблица". Таблица представляет собой список задач с ее параметрами. Доска представляет из себя набор карточек задач, сгруппированных по статусам в колонках доски.
Через представления пользователь может:
- создавать задачи;
- переходить к карточке задачи;
- изменять статус задачи;
- редактировать атрибуты задачи;
- копировать ссылку на задачу;
- назначать исполнителя.
Пользователь может переключаться между представлениями в виде таблицы и доски. Представления отображают задачи выбранной папки или списка задач. В представлениях доступна фильтрация отображаемых задач по названию, статусу и исполнителю.
Настройка рабочих процессов
В системе доступно создание настраиваемых рабочих процессов. Рабочий процесс определяет статусную модель отдельной задачи, которая служит для формализации и отражения этапов выполнения задачи.
В пространстве для каждого типа задачи определен процесс по умолчанию. Все процессы определены на уровне пространства и наследуются папками и задачами.
При конфигурировании рабочего процесса пользователь может:
- создавать новые статусы или добавлять существующие;
- удалять статусы из процесса.
Технические характеристики
Решения по комплексу технических средств, его размещению на объекте
Техническое обеспечение системы TeamStorm включает следующие технические средства:
- серверы;
- рабочие станции (для пользователей).
Требования к серверному оборудованию системы представлены в Таблице 1.
Допускается установка на программную и/или аппаратную систему, эмулирующую аппаратное обеспечение некоторой платформы (виртуальная машина).
Таблица 1 - Требования к серверным ресурсам
Ресурс | Рекомендации |
---|---|
Операционная система | CentOS или любая другая с возможностью установки Docker, Docker compose |
Процессор | x86-64 / 8 ядер серверного класса с поддержкой виртуализации и тактовой частотой 2.2 ГГц и выше |
Оперативная память | 12 Гб |
Объем жесткого диска | 100 Гб |
Сетевой интерфейс | TCP/IP |
Требования к оборудованию рабочих станций пользователей приведены в Таблице 2
Таблица 2 - Требования к оборудованию рабочих станций пользователей
Компонент | Рекомендуемая конфигурация |
---|---|
Процессор | Intel Core 2 Duo 2.3 Ггц или аналог |
Оперативная память | 2 Гб SDRAM |
Жесткий диск | 50 Гб |
Сетевая плата | Ethernet 10 Мбит |
Дополнительное оборудование | Монитор, клавиатура, мышь |
Операционная система | Windows, MacOS или |
Общесистемное ПО | Веб-браузер Google Chrome, Яндекс.Браузер, Opera, Mozilla Firefox, Microsoft Edge или Safari |
Cостав программных средств
Система TeamStorm представляет собой клиент-серверное приложение. Для развертывания и запуска системы используются средства docker-контейнеризации.
Система TeamStorm разработана с помощью следующих программных средств и языков программирования:
- C# – для реализации серверной части;
- TypeScript – для реализации клиентской части и пользовательского интерфейса;
- PostgreSQL – в качестве базы данных;
- Minio – в качестве файлового хранилища;
- RabbitMQ – для организации обмена данными между сервисами системы;
- Elasticsearch – в качестве подсистемы логирования;
- Nginx – для маршрутизации запросов.
Перечень программного обеспечения
- ОС Linux Рекомендуемая ОС Linux, или любая c возможностью установки Docker, Docker compose
- Docker Engine 17.09.0 и выше;
- Docker Compose 1.29.2 и выше.
Перечень необходимых лицензий представлен в Таблице 3.
Таблица 3 - Перечень необходимых лицензий
Тип лицензии TeamStorm | Описание |
---|---|
Временная | Лицензия по количеству пользователей системы на время пилотирования |
Коммерческая | Лицензия по количеству пользователей на время использования |
Термины и определения
Agile-расширение
Расширение с настройками очередей типа "бэклог" и "спринт"
Бэклог
Очередь, которая содержит нерешенные задачи, над которыми работает команда
Спринт
Отрезок времени, в течение которого команда решает определенную задачу или группу задач
Расширение
Модуль, расширяющий функциональность пространства
Пространство
Пространство, которое объединяет типы работ по сходим критерием. Определяет модель доступа и базовые конфигурации содержимого. Принципы выделения пространств принимаются > на уровне организации
Задача
Объект, который можно отслеживать, планировать, описывать, обсуждать или согласовывать
Папка
Раздел в пространстве, который объединяет похожие типы задачи со схожими доступами и процессами (проект/продукт/команда)
Атрибут задачи
Атрибут определенного типа, значение которого может хранить задача. Описывает или категорирует задачу
Пользовательский атрибут
Атрибут, добавляемый пользователем, специфичный для типа задачи и/или папки или пространства
Категория статуса
Определяет возможные категории статусов для группировки статусов. На уровне системы определены категории To Do, In Progress, Done, Cancelled
Рабочий процесс, процесс
Определяет набор статусов для задачи и правила перехода между ними
Процесс по умолчанию
Процесс, присваеваемый задаче при ее создании
Тип задачи
Определяет шаблон создания задачи, с каким процессом или атрибутом она создается
Комментарий
Комментарий к задаче
Вложение
Вложение в виде файла, добавляемое к задаче или комментарию
Ended: Информация о TeamStorm
Руководства ↵
Руководство системного администратора по установке, обновлению и резервному копированию ↵
Инструкция по установке, обновлению и резервному копированию TeamStorm
Назначение документа
Документ описывает действия системного администратора по установке, обновлению, резервному копированию, восстановлению и настройке программного обеспечения TeamStorm.
Версия 2.61.0 и выше ↵
Версия 2.61.0
Назначение документа
Руководство описывает действия системного администратора по установке, резервному копированию, восстановлению и обновлению TeamStorm версии 2.61.0 и выше.
Руководство содержит разделы:
- Общие рекомендации
- Системные требования
- Полезные команды
- Установка и обновление в Docker
- Установка в Kubernetes
- Настройка почтового сервера для уведомлений
- Настройки скриптовой автоматизации
- Настройка допустимого времени редактирования комментариев
- Изменение ссылки на видеоролик
- Проверка корректности установки
- Перезапуск и удаление
- Резервное копирование и восстановление
Общие рекомендации
Не работайте из-под пользователя root
. Для работы приложения достаточно создать пользователя и добавить его в группу docker
:
Создайте отдельную директорию, в которой вы будете хранить артефакты установки.
Артефакты предыдущих установок сохраняйте в заранее отведенном месте.
Используйте мониторинг, чтобы отслеживать нагрузку на сервер.
Системные требования
Требования к серверному оборудованию системы на момент её развёртывания
Ресурс | Конфигурация (минимально / рекомендуется) | Комментарий |
---|---|---|
Процессор | 4 / 8 ядер серверного класса с поддержкой виртуализации | Зависит от нагрузки на кластер |
ОЗУ | 8 / 16 ГБ | Зависит от нагрузки на кластер |
Дисковое пространство | 100 ГБ | *Зависит от объёма хранимой информации |
* – Возможен перенос данных в хранилище S3.
Требования к системному программному обеспечению
Программное обеспечение TeamStorm использует технологию изоляции окружения
Docker
для обеспечения надежной и отказоустойчивой системы и может быть
установлено на любой операционной системе семейства Linux,
поддерживающей эту технологию.
Мы всегда рекомендуем пользоваться последней стабильной версией вашей операционной системы.
Установка Docker Compose
Используйте официальную документацию к дистрибутиву вашей операционной системы
для установки пакетов docker
и docker compose
.
Требования к версиям
Приложение | Версия | Документация |
---|---|---|
Docker Engine | 20 + | Docker Engine |
Docker Compose | 2 + | Docker Compose |
Test IT | 4.4 + | Test IT |
ВНИМАНИЕ
Возможна работа кластера TeamStorm с более старыми версиями пакетов docker
и docker-compose
,
но в таком случае ответственность за стабильную работу лежит на лице, осуществляющем установку.
Полезные команды
Команды, которые могут помочь администратору установить программное обеспечение TeamStorn при помощи Docker.
Команда | Назначение |
---|---|
docker version |
Версия docker |
docker compose version |
Версия docker compose |
docker compose ls |
Посмотреть список запущенных проектов docker compose |
docker compose -p ${PROJECT_NAME} up -d --remove-orphans |
Запустить проект с удалением более неиспользуемых контейнеров |
docker compose -p ${PROJECT_NAME} restart |
Перезапустить проект |
docker compose -p ${PROJECT_NAME} logs ${SERVICE} |
Посмотреть логи сервисе в заданном проекте |
docker compose -p ${PROJECT_NAME} down --volumes |
Остановить проект и очистить разделы контейнеров |
docker compose -p ${PROJECT_NAME} exec -ti -u 0 ${SERVICE} sh |
Запустить в контейнере оболочку sh с правами root пользователя |
Установка и обновление в Docker ↵
Установка и обновление в Docker
Раздел описывает операции по установке и обновлению TeamStorm и содержит подразделы:
Состав поставки
Архив автономной установки содержит папки:
teamstorm
, которая содержит:images.tar
- архив с образами;.env
- конфигурационный файл, содержащий переменные, используемые для обращения к контейнерам TeamStorm;docker-compose.yml
- конфигурационный файл Docker Compose;setup.sh
- скрипт для упрощенного развертывания TeamStorm и Test IT;setup_teamstorm.sh
- скрипт для автоматического развертывания TeamStorm;
testit
с соответствующим набором компонентов, необходимых для установки ПО Test IT.
Подготовка к установке
Для обновления TeamStorm до версии 2.61.0 необходимо предварительно обновить TeamStorm до версии 2.33.
Перед обновлением рекомендуется создать резервную копию TeamStorm и Test IT и
проверить соответствие наименований проектов в docker-compose
. Возможна потеря
данных при неправильном обновлении.
Для проверки выполнить:
$ docker compose ls
NAME STATUS CONFIG FILES
teamstorm running(20) ./deploy/offline_build/teamstorm/docker-compose.yml
testit running(20) ./deploy/offline_build/testit/docker-compose.yml
Настройка сервера для установки кластера TeamStorm
-
Задайте параметры
vm.max_map_count=262144
иvm.overcommit_memory=1
: -
Заблокируйте все порты, кроме порта 80, необходимого для доступа к пользовательскому интерфейсу.
-
Опционально: для обслуживания системы посредством протокола SSH необходимо открыть порт 22 (может быть переназначено на конкретной конфигурации). Для работы по HTTPS необходимо открыть порт 443. Пример открытия доступа к портам для CentOS 8:
Чистая установка
-
Распакуйте архив сборки в целевую директорию, например:
-
Зайдите в любую из директорий
testit
илиteamstorm
и запустите скрипт установки:
Установка обычно занимает не более 5 минут.
Пожалуйста, дождитесь завершения и перейдите к проверке работоспособности приложения.
Обновление
ВНИМАНИЕ
Перед обновлением рекомендуем делать резервное копирование во избежание потери данных.
-
Если у вас уже был ранее установлен TeamStorm, то перенесите директории с артефактами
testit
иteamstorm
в другое месторасположение, например: -
Распакуйте архив сборки, например:
-
После завершения разархивирования сравните файлы конфигураций
.env
иdocker-compose.yml
с файлами из предыдущей версии и внесите необходимые изменения, например:user@server: ~ $ diff testit/.env /tmp/teamstorm_previous/testit/.env << FRONTEND_URL="http://localhost" >> FRONTEND_URL="https://teamstorm.mycompany.io" vi testit/.env ... FRONTEND_URL="teamstorm.mycompany.io" user@server: ~ $ diff testit/docker-compose.yml /tmp/teamstorm_previous/testit/docker-compose.yml user@server: ~ $ diff teamstorm/.env /tmp/teamstorm_previous/teamstorm/.env user@server: ~ $ diff teamstorm/docker-compose.yml /tmp/teamstorm_previous/teamstorm/docker-compose.yml
-
Зайдите в любую из директорий
testit
илиteamstorm
и запустите скрипт установки:
Установка обычно занимает не более 5 минут.
Пожалуйста, дождитесь завершения и перейдите к проверке работоспособности приложения.
Ended: Установка и обновление в Docker
Установка в Kubernetes ↵
Установка в Kubernetes
Раздел описывает развертывание системы управления задачами TeamStorm в кластере Kubernetes и содержит подразделы:
Требования
- Установленный в кластере ingress-контроллер, например, Nginx Ingress Controller.
- Наличие Kubectl.
- Наличие Helm.
- Настроенный поставщик Persistent Volumes.
Состав поставки
Стандартная поставка представляет собой файловый архив вида:
teamstorm_helm_v%Release%.tgz
, где
%Release%
- версия программного обеспечения TeamStorm.
Архив поставки
Распакуйте архив поставки teamstorm_helm_v%Release%.tgz
:
```shell
tar -xzvf teamstorm_helm_v%Release%.tgz
```
Содержимое разархивированных директорий
Структура распакованного архива
```shell
.
├──teamstorm_v2.X # Teamstorm helm charts
├──testit_v4.X # TestIt helm charts
```
Структура каталога Teamstorm
Структура каталога TeamStorm имеет следующий вид:
```shell
.
├── temp
│ ├── temps
│ │ ├── cwm-networkpolicy.yaml
│ │ ├── deployment.yaml
│ │ ├── hpa.yaml
│ │ └── serviceaccount.yaml
│ ├── ingress.yaml
│ └── service.yaml
├── templates
│ ├── Configmaps # Конфигурационные файлы для сервисов и
│ │ ├── attachment-configmap.yaml
│ │ ├── comment-configmap.yaml
│ │ ├── trusted-ca-configmap.yaml
│ │ ├── ssl-configmap.yaml
| | └── ...
│ ├── Deployments
│ │ ├── attachment.yaml
│ │ └── comment.yaml
│ ├── Jobs
│ │ └── db-migration-runner.yaml
│ ├── PVs # Конфигурационные файлы для каждого хранилища
│ │ ├── cwm-rabbitmq-certificates-volume-persistentvolumeclaim.yaml
│ │ ├── cwm-rabbitmq-volume-persistentvolumeclaim.yaml
│ │ └── database-service-volume-persistentvolumeclaim.yaml
│ ├── Secrets
│ │ └── registry.yaml
│ ├── Services # Файлы описания каждого сервиса
│ │ ├── attachment.yaml
│ │ ├── comment.yaml
| | ├── ...
│ ├── tests
│ │ └── test-connection.yaml
│ ├── _helpers.tpl
│ └── NOTES.txt
├── Chart.yaml
└── values.yaml # Файл с основными параметрами
```
Структура каталога Test IT
Структура каталога Test IT имеет следующий вид:
```shell
.
├── CHANGELOG.md # Changelog
├── jobs
│ ├── minio
│ │ ├── backup
│ │ │ ├── configmap.yaml
│ │ │ └── job.yaml
│ │ ├── docker-to-k8s
│ │ │ ├── configmap.yaml
│ │ │ └── job.yaml
│ │ ├── export
│ │ │ ├── configmap.yaml
│ │ │ └── job.yaml
│ │ ├── import
│ │ │ ├── configmap.yaml
│ │ │ └── job.yaml
│ │ └── restore
│ │ ├── configmap.yaml
│ │ └── job.yaml
│ └── postgres
│ ├── backup
│ │ ├── configmap.yaml
│ │ └── job.yaml
│ ├── docker-to-k8s
│ │ ├── configmap.yaml
│ │ └── job.yaml
│ ├── export
│ │ ├── configmap.yaml
│ │ └── job.yaml
│ ├── import
│ │ ├── configmap.yaml
│ │ └── job.yaml
│ └── restore
│ ├── configmap.yaml
│ └── job.yaml
├── licenses-backend.txt # Справочная информация о лицензиях
├── licenses-frontend.txt
├── scripts # Каталог со скриптами
│ ├── 4.1.0-4.2.4_upgrade_plan.yaml
│ ├── 4.2.4-4.3.1_upgrade_plan.yaml
│ ├── docker-compose.minio-export.yml
│ ├── k8s_backup.sh
│ ├── k8s_minio_migrate.sh
│ ├── k8s_postgres_migrate.env
│ ├── k8s_postgres_migrate.sh
│ ├── k8s_restore.sh
│ ├── minio-backup.sh
│ ├── move_to_k8s.sh
│ └── pre_k8s_backup.sh
├── testit_backend # Каталог с файлами, описания служб
│ ├── Chart.yaml
│ ├── templates
│ │ ├── configmaps # Конфигурация служб
│ │ │ ├── appsettings
│ │ │ │ ├── auth.yaml
│ │ │ │ ├── ...
│ │ │ │ └── webapi.yaml
│ │ │ ├── auth.yaml
│ │ │ ├── ...
│ │ │ ├── ssl
│ │ │ │ ├── auth-cache-ssl.yaml
│ │ │ │ ├── ca-bundle.yaml
│ │ │ │ ├── influxdb-ssl.yaml
│ │ │ │ ├── minio-ssl.yaml
│ │ │ │ ├── postgres-ssl.yaml
│ │ │ │ └── rabbitmq-ssl.yaml
│ │ │ └── webapi.yaml
│ │ ├── deployments
│ │ │ ├── auth.yaml
│ │ │ ├── ...
│ │ │ └── webapi.yaml
│ │ ├── services
│ │ │ ├── auth-cache.yaml
│ │ │ ├── ...
│ │ │ └── webapi.yaml
│ │ └── statefulsets
│ │ ├── auth-cache.yaml
│ │ ├── influxdb.yaml
│ │ ├── minio.yaml
│ │ ├── postgres.yaml
│ │ └── rabbitmq.yaml
│ ├── values-override.yaml
│ ├── values-ssl.yaml
│ └── values.yaml
└── testit_frontend # Конфигурация веб-сервера
├── Chart.yaml
├── templates
│ ├── configmaps
│ │ └── frontend.yaml
│ ├── deployments
│ │ └── frontend.yaml
│ └── services
│ ├── frontend.yaml
│ └── ingress.yaml
├── values-override.yaml
├── values-ssl.yaml
└── values.yaml # Основной конфигурационный файл
```
Подготовка к установке
Для обновления TeamStorm до версии 2.61.0 и выше необходимо предварительно обновить TeamStorm до версии 2.33.
Перед обновлением рекомендуется создать резервную копию TeamStorm и Test IT.
Так как работа TeamStorm требует наличие работающего программного обеспечения Test IT, то для успешного старта вам нужно внести следующие изменения в конфигурацию:
-
Убедитесь в том, что параметр
CWM_ENABLED: "true"
дляtestit-backend/values.yaml
иtestit-frontend/values.yaml
: -
Укажите DNS-имена для следующих служб TeamStorm в файле конфигурации Test IT
testit-frontend/values.yaml
, учитывая имя пространства Kubernetesteamstorm
:general: config: CWM_ENABLED: "true" CWM_S3_BUCKET_NAME: "cwm" CWM_S3_BUCKET_SECRET_KEY: "secretKey" WIKI_S3_BUCKET_NAME: "wiki" WIKI_S3_BUCKET_SECRET_KEY: "secretKey" TASK_TRACKER_GATEWAY_API: "task-tracker-gateway-api.teamstorm:8080" WIKI_GATEWAY_API_UPSTREAM: "wiki-gateway-api.teamstorm:8080" TASK_TRACKER_WEB_APP: "task-tracker-web-app.teamstorm:8080" NOTIFICATION_SERVICE_HUB: "notification-service-hub.teamstorm:8080" CWM_PUBLIC_GATEWAY_API: "cwm-public-gateway-api.teamstorm:8080"
-
Сгенерируйте значения параметров
CWM_S3_BUCKET_SECRET_KEY
иWIKI_S3_BUCKET_SECRET_KEY
. Обратите внимание, что недопустимым символом является$
. -
Убедитесь в соответствии выставленных значений параметров
CWM_S3_BUCKET_SECRET_KEY
иWIKI_S3_BUCKET_SECRET_KEY
в файлах конфигурации TeamStorm и Test ITvalues.yml
,teamstorm/values.yml
:testit-frontend/values.yaml
-
Параметры секции
main.tms
конфигурационного файла TeamStorm должны указывать на соответствующие сервисы Test IT:
main:
...
tms:
auth_url: "http://auth.testit:8080"
auth_cache_url: "auth-cache.testit"
avatars_api_url: "http://avatars-api.testit:8080/api/"
license_url: "http://license-service.testit:8080"
s3_endpoint_url: "http://minio.testit:9000"
s3_access_key: "testitAccessKey"
s3_secret_key: "testitSecretKey"
use_auth_openid: "false"
...
ВНИМАНИЕ
Конфигурационные файлы предустановлены с учётом использования пространств имен
testit
и teamstorm
. В случае их изменения требуется отразить это в
конфигурационных файлах.
Установка
ВНИМАНИЕ
Перед установкой еще раз убедитесь в корректности выполненных шагов по подготовке к старту кластера.
Конфигурация Test IT
Примените настройки, выполненные относительно Test IT при предварительной
настройке, где ${TESTIT_NAMESPACE}
— имя пространства Kubernetes, в
котором развернуто ПО Test IT:
cd ~/testit_vX.XX #
# Установите приложения бэкенда.
helm upgrade -n ${TESTIT_NAMESPACE} /
-f testit_frontend/values-override.yaml /
./testit_frontend
# Дождитесь начала работы всех модулей внешнего интерфейса
watch -n 1 kubectl -n ${TESTIT_NAMESPACE} get pods -l app=frontend
Распаковка архива teamstorm_helm_vXXX.tgz
Распакуйте файлы приложения TeamStorm и перейдите в разархивированную директорию
Основные переменные кластера
Задайте основные переменные в файле teamstorm/values.yaml
Структура values.yaml
и основные переменные конфигурации
Имя переменной | Значение | Описание |
---|---|---|
main |
Блок переменных | |
├──.сwm. |
Основной блок переменных Teamstorm | |
└────frontend_url |
https://testit.cluster.local |
Укажите DNS имя ingress контроллера |
├──.storage. |
Блок переменных для PVC разделов | |
└────storageClassName |
Измените для уточнения типа раздела | |
├──.mailserver. |
Блок переменных для работы почтовых нотификаций | |
└────host |
${MAIL_SERVER_HOST} |
DNS имя вашего SMTP сервера |
└────port |
${MAIL_SERVER_PORT} |
SMTP порт сервера |
└────from |
deamon@service.com |
Определяет параметр заголовка письма уведомления from |
└────display_name |
Mail Deamon |
Определяет имя отправителя порт |
└────user_name |
${MAIL_SERVER_HOST} |
SMTP имя пользователя |
└────password |
${MAIL_SERVER_PORT} |
SMTP пароль |
Запуск кластера приложения TeamStorm
Для запуска кластера приложения TeamStorm выполните следующую команду, установив значение:
${TEAMSTORM_NAMESPACE}
:
Stateless режим работы служб
ВНИМАНИЕ
Сервисы кластера TeamStorm работают в режиме stateless. Мы настоятельно рекомендуем вынести такие службы как postgres, minio и redis за пределы кластера kubernetes.
Рекомендации по установке сервера баз данных Postgres
Для корректной работы сервера необходима версия Postgres 14 и выше с установленным
расширением rum
.
Для установки расширения rum
выполните команду:
Ended: Установка в Kubernetes
Настройка почтового сервера для уведомлений
Используйте доверенные сертификаты для соединения с использованием самоподписных сертификатов.
Для этого необходимо положить файл, содержащий сгенерированный сертификат в формате PEM, в docker volume trusted-certificates-volume
.
Например:
$ ls /var/lib/docker/volumes/teamstorm_trusted-certificates-volume/_data/
/var/lib/docker/volumes/teamstorm_trusted-certificates-volume/_data/host.pem
MAIL_SERVER_USE_CUSTOM_TRUSTED_CA_BUNDLE="true"
Внесите изменения в env-файл:
- Укажите хост размещения TeamStorm:
CWM_FRONTEND_URL="https://teamstorm.contoso.com"
- Для использования полной проверки без исключений используйте значение
MAIL_SERVER_USE_CUSTOM_TRUSTED_CA_BUNDLE="false"
Значение по умолчанию: MAIL_SERVER_USE_CUSTOM_TRUSTED_CA_BUNDLE="false"
- При пустом значении
MAIL_SERVER_HOST
сервер не отправляет сообщения. Укажите хост почтового сервера. Например:MAIL_SERVER_HOST="smtp.mail.io"
Значение по умолчанию: MAIL_SERVER_HOST=""
- Укажите порт почтового сервера. Например:
MAIL_SERVER_PORT="25"
Значение по умолчанию: MAIL_SERVER_PORT="1025"
- Укажите сервисный аккаунт обратный адрес которого будет указан в заголовке сообщения. Например:
MAIL_SERVER_FROM="deamon@mail.io"
Значение по умолчанию: MAIL_SERVER_FROM="deamon@service.com"
- Укажите имя сервисного аккаунта для отображения . Например:
MAIL_SERVER_DISPLAY_NAME="Teamstorm Mail Notification"
Значение по умолчанию: MAIL_SERVER_DISPLAY_NAME="Mail Deamon"
- Укажите имя пользователя для аутентификации на сервере SMTP/IMAP . Например:
MAIL_SERVER_USER_NAME="username"
Значение по умолчанию: MAIL_SERVER_USER_NAME=" "
- Укажите пароль для аутентификации. Например:
MAIL_SERVER_PASSWORD="password"
Значение по умолчанию: MAIL_SERVER_PASSWORD=""
- Для подключения к почтовому серверу через STARTTLS укажите:
MAIL_SERVER_USE_START_TLS="true"
Значение по умолчанию: MAIL_SERVER_USE_START_TLS="false"
-
Для подключения к почтовому серверу через SSL укажите:
MAIL_SERVER_USE_SSL="true"
Значение по умолчанию:
MAIL_SERVER_USE_SSL="false"
-
Укажите идентификатор часового пояса, например:
MAIL_SERVER_TZ="Europe/Moscow"
По умолчанию установлено московское время:
MAIL_SERVER_TZ="Europe/Moscow"
Таблица идентификаторов временных зон: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
-
После внесения изменений перезапустите систему.
Настройки скриптовой автоматизации
Для настройки поведения API используются переменные окружения, пробрасываемые в контейнер docker
:
AUTOMATION_SCRIPT_ENGINE_ENABLE
— используется ли вообще скриптовая автоматизация.
Если не используется, то соответствующего пункта не будет в GUI (под учетной записью администратора),
а скрипты не станут запускаться. Является системной настройкой, которую получает сайт.
AUTOMATION_SCRIPT_TIMEOUT
— общий таймаут выполнения всего скрипта, секунды, по умолчанию — 10.
Следующие настройки относятся исключительно к API
пользовательских запросов к внешним ресурсам по HTTP (метод SendHttpRequest
).
AUTOMATION_SCRIPT_HTTP_TIMEOUT
— таймаут запросов, секунды, по умолчанию — 10.
AUTOMATION_SCRIPT_HTTP_RESPONSE_LENGTH
— максимальная длина возвращаемых данных, в байтах, по умолчанию — 1 мегабайт.
AUTOMATION_SCRIPT_HTTP_REQUEST_RETRY
— число попыток, по умолчанию — 4.
AUTOMATION_SCRIPT_HTTP_REQUEST_DELAY_MS
— промежуток времени между неудачными попытками, равномерный, в миллисекундах, по умолчанию — 1500.
Минимум ограничен программно в 1 секунду.
Настройка допустимого времени редактирования комментариев
Система ограничивает возможность редактировать комментарии по истечению допустимого времени.
Для увеличения или уменьшения допустимого времени редактирования используются переменная окружения, пробрасываемая в контейнер docker
:
COMMENT_EDIT_TIMEOUT_SECONDS
— допустимое время редактирования комментариев,
в секундах, по умолчанию — 3600 секунд.
Внесите изменения в env-файл:
- Измените период редактирования комментариев:
COMMENT_EDIT_TIMEOUT_SECONDS="3600"
- После внесения изменений перезапустите систему.
Изменение ссылки на видеоролик
Чтобы заменить приветственный видеоролик:
- Перейдите в папку, куда был распакован архив поставки TeamStorm.
- Найдите в файле
web_app.json
в папкеconfigs
из поставки TeamStorm ссылку на видеоролик.
teamstorm]$ cat ./configs/web_app.json
{
"External_link": ""https://vk.com/video_ext.php?oid=-216829582&id=456239131&hd=2""
}
- Замените существующую ссылку своей и сохраните изменения.
- Перезапустите TeamStorm:
docker compose -p teamstorm up -d
(выполняется в случае, когда изменения проводятся на уже установленной системе).
Проверка корректности установки
Для проверки корректности установки:
-
Убедитесь в том, что в Системе предсоздан пользователь с ролью администратора. Авторизуйтесь под учетной записью администратора
cwm_admin
. -
Убедитесь в том, что лицензии TeamStorm добавлены.
-
Убедитесь в том, что в системе есть другие пользователи, или добавьте нового пользователя (например, с именем user1).
-
Перейдите в настройки пространства, добавьте в пространство пользователя, созданного на шаге 3.
-
Перейдите в созданную задачу и отредактируйте ее:
-
поменяйте ее статус;
- выберите ответственным пользователя, созданного на шаге 3.
- добавьте описание;
-
добавьте вложение.
-
Убедитесь в том, что пользователю, созданному на шаге 3, пришло почтовое уведомление.
Установка выполнена корректно, если все шаги проверки выполняются.
Перезапуск и удаление
Перезапуск системы
Для перезапуска системы воспользуйтесь следующей командой:
Удаление системы
Для полного удаления системы и ее данных необходимо выполнить следующую команду:
cd teamstorm_v2.33.0
docker compose -f docker-compose.yml --project-name teamstorm down --volumes --timeout 120
Чтобы сохранить информацию для последующего использования, выполните команду без флага --volumes
.
Резервное копирование и восстановление ↵
Резервное копирование и восстановление
Раздел описывает операции резервного копирования TeamStorm и восстановления системы из резервной копии и содержит подразделы:
Резервное копирование
Данный раздел описывает процедуру сохранения данных кластера TeamStorm и Test IT на случай системных сбоев, отказа оборудования и непредвиденных ситуаций.
ВНИМАНИЕ
Для создания архива остановка кластера необязательна, но выполнение команд резервного копирования может негативно отразиться на работе пользователей.
Резервное копирование данных состоит из двух шагов.
-
Создание дампов баз данных PostgreSQL.
-
Создание файлового архива необходимых разделов docker-контейнеров.
Создание дампа баз данных PostgreSQL
Данная процедура описывает создание дампов баз данных PostgreSQL. Процедура автоматизирована и для запуска нужно выполнить следующие действия:
-
Перейдите в директорию
scripts
, которая находится внутри директории с артефактами TeamStorm.user@server: ~/teamstorm $ cd scripts user@server: ~/teamstorm/scripts $ ls -lha total 28 drwxrwxr-x 3 user user 4096 Sep 19 13:24 ./ drwxrwxr-x 4 user user 4096 Sep 19 13:23 ../ -rwxrwx--- 1 user user 1270 Sep 18 11:22 copy_backup.sh* -rwxrwx--- 1 user user 1275 Sep 18 11:22 db_backup.sh* -rwxrwx--- 1 user user 1652 Sep 18 11:22 db_restore.sh* -rw-rw-r-- 1 user user 1737 Sep 18 11:22 postgres-init.sql
-
Создайте директорию там, где будет сохранен архив, например:
user@server: ~/teamstorm/scripts $ mkdir dumps user@server: ~/teamstorm/scripts $ ls -lha total 28 drwxrwxr-x 3 user user 4096 Sep 19 13:24 ./ drwxrwxr-x 4 user user 4096 Sep 19 13:23 ../ -rwxrwx--- 1 user user 1270 Sep 18 11:22 copy_backup.sh* -rwxrwx--- 1 user user 1275 Sep 18 11:22 db_backup.sh* -rwxrwx--- 1 user user 1652 Sep 18 11:22 db_restore.sh* drwxr-xr-x 2 user user 4096 Sep 19 13:26 dumps/ -rw-rw-r-- 1 user user 1737 Sep 18 11:22 postgres-init.sql
-
Запустите скрипт
db_backup.sh
, указав целевую директорию, например:user@server: ~/teamstorm/scripts $ ./db_backup.sh ./dumps Creating backup: teamstorm_migrations_db_2023-09-20_09-42-00.bak container: database_service database: teamstorm_migrations_db Successfully copied 2.56kB to /home/tester/deploy/teamstorm/scripts/dumps/teamstorm_migrations_db_2023-09-20_09-42-00.bak Creating backup: teamstorm_attachment_db_2023-09-20_09-42-00.bak container: database_service database: teamstorm_attachment_db Successfully copied 9.22kB to /home/tester/deploy/teamstorm/scripts/dumps/teamstorm_attachment_db_2023-09-20_09-42-00.bak Creating backup: teamstorm_comment_db_2023-09-20_09-42-00.bak container: database_service database: teamstorm_comment_db Successfully copied 44kB to /home/tester/deploy/teamstorm/scripts/dumps/teamstorm_comment_db_2023-09-20_09-42-00.bak Creating backup: teamstormdb_2023-09-20_09-42-00.bak container: database_service database: teamstormdb Successfully copied 486kB to /home/tester/deploy/teamstorm/scripts/dumps/teamstormdb_2023-09-20_09-42-00.bak
В процессе выполнения вы увидите сообщения о создании архивов для каждой базы данных. По окончании будет создан конечный архив, сжатый с использованием aрхиватора gzip:
./dumps/teamstorm_wiki_db_2023-09-20_09-42-00.bak
./dumps/teamstorm_workflow_db_2023-09-20_09-42-00.bak
./dumps/teamstorm_workspace_db_2023-09-20_09-42-00.bak
./dumps/teamstormdb_2023-09-20_09-42-00.bak
./dumps/teamstorm_2023-09-20_09-42-00_backup.tgz
Процесс по созданию архива для кластера TeamStorm успешно завершен.
Повторите эти же шаги для кластера Test IT:
user@server: ~/teamstorm $ cd ../../testit/scripts
user@server: ~/testit/scripts $ mkdir dumps
user@server: ~/testit/scripts $ ./db_backup.sh ./dumps
Creating backup: container: backgrounddb database: backgrounddb
Successfully copied 57.9kB to /home/tester/deploy/testit/scripts/dumps/backgrounddb_2023-09-20_09-59-49.bak
Creating backup: container: avatars.db database: avatarsdb
...
./dumps/testit_2023-09-20_09-59-49_backup.tgz
Создание файлового архива необходимых разделов docker-контейнеров
Для создания копий разделов контейнеров кластера нужно иметь привилегии
пользователя root
, так как по-умолчанию только root
имеет доступ к этим
разделам файловой структуры.
-
Перейдите в директорию, где хранятся разделы docker-контейнеров. По умолчанию это
/var/lib/docker/volumes/
admin@server: ~/testit/scripts $ sudo -s root@server: ~/testit/scripts $ cd /var/lib/docker/volumes/ root@server: /var/lib/docker/volumes/ $ ls -lha drwx-----x 33 root root 4096 Sep 20 08:35 ./ drwx--x--- 13 root root 4096 Sep 20 08:35 ../ brw------- 1 root root 253, 0 Sep 20 08:35 backingFsBlockDev -rw------- 1 root root 131072 Sep 20 08:35 metadata.db drwx-----x 3 root root 4096 Sep 20 08:31 teamstorm_cwm-rabbit-volume/ drwx-----x 3 root root 4096 Sep 20 08:31 teamstorm_cwm-rabbitmq-certificates-volume/ drwx-----x 3 root root 4096 Sep 20 08:31 teamstorm_database-service-volume/ drwx-----x 3 root root 4096 Sep 20 08:31 teamstorm_ssl-volume/ drwx-----x 3 root root 4096 Sep 20 08:31 teamstorm_trusted-certificates-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_auth-cache-tls-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_auth-cache-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_authdb-tls-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_authdb-volume/ drwx-----x 3 root root 4096 Sep 20 08:37 testit_avatars-minio-data-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_avatars-minio-export-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_avatars-minio-tls-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_avatars.db-tls-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_avatars.db-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_backgrounddb-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_db-tls-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_db-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_globalsearchdb-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_influx-tls-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_influx-volume/ drwx-----x 3 root root 4096 Sep 20 08:35 testit_license-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_licensedb-volume/ drwx-----x 3 root root 4096 Sep 20 08:37 testit_minio-data-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_minio-export-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_minio-tls-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_rabbit-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_rabbitmq-certificates-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_rabbitmq-configuration-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_ssl-volume/ drwx-----x 3 root root 4096 Sep 20 08:34 testit_trusted-certificates-volume/ drwx-----x 3 root root 4096 Sep 20 08:35 testit_verification-volume/
-
Заархивируйте необходимые директории с помощью
tar
, например:
ВНИМАНИЕ
В данном примере указаны разделы, содержащие все данные, которые находятся в хранилище S3 minio, а также сертификаты SSL, которые вы, возможно, использовали для настройки HTTPS соединения testit.
Укажите другие разделы, если вы также их используете.
Финальным шагом должно быть сохранение трех файлов архива в ваше хранилище
резервных копий. При необходимости, процедуру можно автоматизировать с помощью
crontab
.
Восстановление из резервной копии
Данный раздел описывает процедуру восстановления данных для кластера TeamStorm и Test IT в случае системного сбоя.
ВНИМАНИЕ
Для восстановления работы кластера нужно установить "чистую" версию TeamStorm и Test IT
Перед восстановлением убедитесь, что cистема пустая и работает корректно
Восстановление данных из резервной состоит из двух шагов и выполняется в порядке, обратном созданию резервных копий.
-
Восстановление разделов docker-контейнеров.
-
Восстановление баз данных PostgreSQL из ранее созданных дампов.
Восстановление разделов docker-контейнеров
Для восстановления разделов контейнеров кластера нужно иметь привилегии
пользователя root
, так как по-умолчанию только root
имеет доступ к этим
разделам файловой структуры.
-
Создайте временную директорию и перейдите в нее. Затем скопируйте сюда архив, содержащий разделы контейнеров докер:
root@server: /root/ $ mkdir /tmp/volumes_backup root@server: /root/ $ cd /tmp/volumes_backup root@server: /tmp/volumes_backup/ $ scp backup-server:/teamstorm/volumes_backup.tgz . root@server: /tmp/volumes_backup/ $ tar -xzvf volumes_backup.tgz testit_ssl-volume/ testit_minio-data-volume/ testit_avatars-minio-data-volume/ root@server: /tmp/volumes_backup/ $ rm -f volumes_backup.tgz
-
Перенесите директории в папку c разделами
docker
. По умолчанию это/var/lib/docker/volumes/
ВНИМАНИЕ
Пользователь root
больше не нужен, остальные операции можно делать из-под "обычного" пользователя
Восстановление баз данных PostgreSQL из дампов
Данная процедура описывает баз данных PostgreSQL из предварительно созданных дампов. Процедура автоматизирована и для запуска нужно выполнить следующие действия:
-
Перейдите в директорию
scripts
, которая находится внутри директории с артефактами TeamStorm:user@server: ~/teamstorm $ cd scripts user@server: ~/teamstorm/scripts $ ls -lha total 28 drwxrwxr-x 3 user user 4096 Sep 19 13:24 ./ drwxrwxr-x 4 user user 4096 Sep 19 13:23 ../ -rwxrwx--- 1 user user 1270 Sep 18 11:22 copy_backup.sh* -rwxrwx--- 1 user user 1275 Sep 18 11:22 db_backup.sh* -rwxrwx--- 1 user user 1652 Sep 18 11:22 db_restore.sh* -rw-rw-r-- 1 user user 1737 Sep 18 11:22 postgres-init.sql
-
Создайте здесь директорию
dumps
, сохраните туда архив и распакуйте его:user@server: ~/teamstorm/scripts $ mkdir dumps user@server: ~/teamstorm/scripts $ ls -lha total 28 drwxrwxr-x 3 user user 4096 Sep 19 13:24 ./ drwxrwxr-x 4 user user 4096 Sep 19 13:23 ../ -rwxrwx--- 1 user user 1270 Sep 18 11:22 copy_backup.sh* -rwxrwx--- 1 user user 1275 Sep 18 11:22 db_backup.sh* -rwxrwx--- 1 user user 1652 Sep 18 11:22 db_restore.sh* drwxr-xr-x 2 user user 4096 Sep 19 13:26 dumps/ -rw-rw-r-- 1 user user 1737 Sep 18 11:22 postgres-init.sql user@server: ~/teamstorm/scripts $ scp backup-server:/teamstorm/teamstorm_2023-09-20_09-42-00_backup.tgz ./dumps/ user@server: ~/teamstorm/scripts $ cd dumps user@server: ~/teamstorm/scripts/dumps/ $ tar -xzvf teamstorm_2023-09-20_09-42-00_backup.tgz ... user@server: ~/teamstorm/scripts $ cd ..
-
Запустите скрипт
db_restore.sh
, указав целевую директорию и общий суффикс, состоящий из временной метки и расширения, например, для файлов:
Общим суффикcом будет 2023-09-20_09-42-00.bak
. Таким образом, команда для восстановления будет выглядеть следующим образом:
ВНИМАНИЕ
Обращайте внимание на лог восстановления, при необходимости перенаправьте поток вывод в файл для дальнейшего анализа.
Пример успешного восстановления:
```shell
...
Recovering from backup: container: teamstorm-database_service-1 teamstormdb teamstormdb_15-09-2023_15-13.bak
UPDATE 1
pg_terminate_backend
----------------------
t
t
t
t
(4 rows)
DROP DATABASE
CREATE DATABASE
```
Пример неудачной попытки восстановления из несуществующего дампа.
```shell
Recovering from backup: container: teamstorm-database_service-1 teamstorm_migrations_db teamstorm_migrations_db_15-09-2023_15-13.bak
lstat /home/tester/deploy/teamstorm/scripts/dumps/teamstorm_migrations_db_15-09-2023_15-13.bak:
no such file or directory
UPDATE 1
pg_terminate_backend
----------------------
(0 rows)
DROP DATABASE
CREATE DATABASE
pg_restore: error: could not open input file "/teamstorm_migrations_db_15-09-2023_15-13.bak":
No such file or directory
```
После успешного восстановления перезапустите кластер teamstorm
:
Процесс по восстановлению для кластера TeamStorm успешно завершен.
Повторите те же шаги для кластера Test IT:
```shell
user@server: ~/teamstorm $ cd ../../testit/scripts
user@server: ~/testit/scripts $ mkdir dumps
user@server: ~/testit/scripts $ scp backup-server:/teamstorm/testit_2023-09-20_09-59-49_backup.tgz ./dumps/
user@server: ~/testit/scripts $ cd dumps
user@server: ~/testit/scripts/dumps/ $ tar -xzvf teamstorm_2023-09-20_09-42-00_backup.tgz
...
user@server: ~/testit/scripts $ cd ..
user@server: ~/testit/scripts $ ./db_restore.sh ./dumps 2023-09-20_09-59-49.bak
Recovering from backup: container:
...
```
После успешного восстановления перезапустите кластер testit
:
Процесс по восстановлению для кластера Test IT успешно завершен.
Убедитесь в работоспособности приложения после восстановления.
Ended: Резервное копирование и восстановление
Ended: Версия 2.61.0 и выше
Архивные версии ↵
Архивные версии
Раздел содержит описание установки архивных версий TeamStorm:
Версия 2.33.3 ↵
Версия 2.33.3
Назначение документа
Инструкция описывает действия системного администратора по установке и обновлению TeamStorm v. 2.33.3 и выше.
Инструкция содержит разделы:
Системные требования
Таблица 1 "Системные требования"
Ресурс | Кол-воМинимально / Рекомендуется | Комментарий |
---|---|---|
CPU | x86-64 / 4 / 8 cores | *Зависит от нагрузки на кластер |
RAM | 8 / 16 Gb | *Зависит от нагрузки на кластер |
Disk space | 100 Gb | **Зависит от объёма хранимой информации |
Внимание
* – смотри раздел "Нагрузочное тестирование" ** – Возможен перенос данных в хранилище S3.
Требование к установленному программному обеспечению
Программное обеспенчение Teamstorm использует технологию изоляции окружения
docker
для обеспечения надёжной и отказоустойчивой системы и может быть
установлено на любой операционной системе семейства Linux, поддерживающией
эту технологию. Мы всегда рекомендуем пользоваться последней стабильной версией
вашей операционной системы.
Установка Docker Compose
Используйте официальную документацию к дистрибутиву вашей операционной системы
для установки пакетов docker
и docker compose
.
Требования к версиям
Приложение | Версия | Документация |
---|---|---|
Docker Engine | 20 + | Docker engine |
Docker Compose | 2 + | Docker Compose |
TestIT | 4.4 + | TestIT |
Внимание
Возможна работа кластера Teamstorm с более старыми версиями пакетов docker
и docker-compose
, но в таком случае ответственность за стабильную работу
лежит на лице, осуществляющем установку.
Предварительная подготовка и настройка сервера
Данная инструкция описывает предварительную настройку сервера для установки кластера Teamstorm.
-
Задайте параметры
vm.max_map_count=262144
иvm.overcommit_memory=1
: -
Заблокируйте все порты, кроме порта 80, необходимого для доступа к пользовательскому интерфейсу.
-
Опционально: для обслуживания системы посредством протокола SSH, необходимо открыть порт 22 (может быть переназначено на конкретной конфигурации). Для работы по HTTPS необходимо открыть порт 443. Пример открытия доступа к портам для CentOS 8:
Установка чистой версии Teamstorm
-
Распакуйте архив сборки в целевую директорию, например:
-
Зайдите в любую из директорий
testit
илиteamstorm
и запустите скрипт установки:
Установка обычно занимает не более 5 минут. Пожалуйста, дождитесь завершения и откройте браузер для проверки работоспособности приложения.
Обновление Teamstorm
ВНИМАНИЕ
Перед обновлением всегда лучше делать резервное копирование во избежание потери данных.
-
Если у вас уже был ранее установлен Teamstorm, то перенесите директории с артефактами
testit
иteamstorm
в другое месторасположение, например: -
Распакуйте архив сборки, например:
-
После завершения разархивирования сравните файлы конфигураций
.env
иdocker-compose.yml
с файлами из предыдущей версии и внесите необходимые изменения, например:user@server: ~ $ diff testit/.env /tmp/teamstorm_previous/testit/.env << FRONTEND_URL="http://localhost" >> FRONTEND_URL="https://teamstorm.mycompany.io" vi testit/.env ... FRONTEND_URL="teamstorm.mycompany.io" user@server: ~ $ diff testit/docker-compose.yml /tmp/teamstorm_previous/testit/docker-compose.yml user@server: ~ $ diff teamstorm/.env /tmp/teamstorm_previous/teamstorm/.env user@server: ~ $ diff teamstorm/docker-compose.yml /tmp/teamstorm_previous/teamstorm/docker-compose.yml
-
Зайдите в любую из директорий
testit
илиteamstorm
и запустите скрипт установки:
Установка обычно занимает не более 5 минут. Пожалуйста, дождитесь завершения и откройте браузер для проверки работоспособности приложения.
Установка Teamstorm в уже существующий кластер TestIT
Используйте эту инструкцию если у вас ранее уже была установлено программное обеспечение TestIt, и вы хотите использовать доустановить Teamstorm.
ВНИМАНИЕ
Перед обновлением всегда лучше делать резервное копирование во избежание потери данных.
-
Переместите артефакты предыдущей установки TestIt во временную директорию, например:
-
Положите и распакуйте архив в целевую директорию, например:
user@server: ~ $ scp somewhere:~/teamstorm_full_v2.33.3.tgz . user@server: ~ $ tar -xzvf teamstorm_full_v2.33.3.tgz ./teamstorm/ ./teamstorm/scripts/ ./teamstorm/scripts/postgres-init.sql ./teamstorm/scripts/db_backup.sh ./teamstorm/scripts/db_restore.sh ./teamstorm/configs/ ./teamstorm/configs/rabbitmq_enabled_plugins ./teamstorm/configs/postgres_exporter.yml ./teamstorm/docker-compose.yml ./teamstorm/.env ./teamstorm/setup_teamstorm.sh ./teamstorm/setup.sh ./teamstorm/images.list ./teamstorm/images.tar ...
-
Сравните файлы установок предыдущей установки TestIt с новой версией и синхронизируйте ранее выполненные изменения. Новые переменные можно пока оставить без изменений. Переменную
CWM_ENABLED
оставить в значении вtrue
, например:$ diff testit/docker-compose.yml /tmp/previous/testit/docker-compose.yml << - 443:8443/tcp >> # - 443:8443/tcp >> FRONTEND_URL="https://teamstorm.mycompany.io" << CWM_ENABLED="true"
-
Теперь нужно убедиться в соответствии следующих переменных
testit/.env
teamstorm/.env
Комментарий FRONTEND_URL CWM_FRONTEND_URL Например: "https://teamstorm.mycompany.ru" CWM_S3_BUCKET_SECRET_KEY CWM_S3_BUCKET_SECRET_KEY Переменная не должна содержать символ $
WIKI_S3_BUCKET_SECRET_KEY WIKI_S3_BUCKET_SECRET_KEY Переменная не должна содержать символ $
-
Если вы уверены, что выполнили все предыдущие шаги корректно, то перейдите в директорию
teamstorm
илиtestit
и запустите скрипт установки, например:
Общие рекомендации
-
Не работайте из-под пользователя
root
. Для работы приложения достаточно создать пользователя и добавить его в группуdocker
: -
Создайте отдельную директорию, в которой вы будете хранить артефакты установки.
-
Артефакты предыдущих установок сохраняйте в заранее отведенном месте.
-
Используйте мониторинг, чтобы отслеживать нагрузку на сервер.
Резервное копирование и восстановление ↵
Резервное копирование и восстановление
Раздел описывает операции резервного копирования TeamStorm и восстановления системы из резервной копии и содержит подразделы:
Ended: Резервное копирование и восстановление
Установка в Kubernetes ↵
Установка в Kubernetes
Данное руководство описывает развёртывание системы управления задачами Teamstorm в кластере Kubernetes.
Требования
-
Установленный в кластере ingress-контроллер, например, Nginx Ingress Controller
-
Наличие Kubectl
-
Наличие Helm
-
Настроенный поставщик Persistent Volumes
Состав поставки
Стандартная поставка представляет собой файловый архив вида:
teamstorm_helm_v%Release%.tgz
, где %Release%
- версия
программного обеспечения Teamstorm
-
Распакуйте архив поставки
teamstorm_helm_v%Release%.tgz
: -
Содержимое разархивированных директорий будет иметь следующую структуру:
-
Структура каталога Teamstorm:
. ├── temp │ ├── temps │ │ ├── cwm-networkpolicy.yaml │ │ ├── deployment.yaml │ │ ├── hpa.yaml │ │ └── serviceaccount.yaml │ ├── ingress.yaml │ └── service.yaml ├── templates │ ├── Configmaps # Конфигурационные файлы для каждого из сервисов │ │ ├── attachment-configmap.yaml │ │ ├── comment-configmap.yaml | | ├── ... │ ├── Deployments │ │ ├── attachment.yaml │ │ ├── comment.yaml │ ├── Jobs │ │ ├── attachment.yaml | | ├── ... │ ├── PVs # Конфигурационные файлы для каждого хранилища │ │ ├── cwm-rabbitmq-certificates-volume-persistentvolumeclaim.yaml │ │ ├── cwm-rabbitmq-volume-persistentvolumeclaim.yaml │ │ ├── database-service-volume-persistentvolumeclaim.yaml │ │ ├── ssl-volume-persistentvolumeclaim.yaml │ │ └── trusted-certificates-volume-persistentvolumeclaim.yaml │ ├── Secrets │ │ └── registry.yaml │ ├── Services # Файлы описания каждого сервиса │ │ ├── attachment.yaml │ │ ├── comment.yaml | | ├── ... │ ├── tests │ │ └── test-connection.yaml │ ├── _helpers.tpl │ └── NOTES.txt ├── Chart.yaml └── values.yaml # Файл с основными параметрами
-
Структура каталога TestIT:
. ├── CHANGELOG.md # Changelog ├── jobs │ ├── minio │ │ ├── backup │ │ │ ├── configmap.yaml │ │ │ └── job.yaml │ │ ├── docker-to-k8s │ │ │ ├── configmap.yaml │ │ │ └── job.yaml │ │ ├── export │ │ │ ├── configmap.yaml │ │ │ └── job.yaml │ │ ├── import │ │ │ ├── configmap.yaml │ │ │ └── job.yaml │ │ └── restore │ │ ├── configmap.yaml │ │ └── job.yaml │ └── postgres │ ├── backup │ │ ├── configmap.yaml │ │ └── job.yaml │ ├── docker-to-k8s │ │ ├── configmap.yaml │ │ └── job.yaml │ ├── export │ │ ├── configmap.yaml │ │ └── job.yaml │ ├── import │ │ ├── configmap.yaml │ │ └── job.yaml │ └── restore │ ├── configmap.yaml │ └── job.yaml ├── licenses-backend.txt # Справочная информация о лицензиях ├── licenses-frontend.txt ├── scripts # Каталог со скриптами │ ├── 4.1.0-4.2.4_upgrade_plan.yaml │ ├── 4.2.4-4.3.1_upgrade_plan.yaml │ ├── docker-compose.minio-export.yml │ ├── k8s_backup.sh │ ├── k8s_minio_migrate.sh │ ├── k8s_postgres_migrate.env │ ├── k8s_postgres_migrate.sh │ ├── k8s_restore.sh │ ├── minio-backup.sh │ ├── move_to_k8s.sh │ └── pre_k8s_backup.sh ├── testit_backend # Каталог с файлами, описания служб │ ├── Chart.yaml │ ├── templates │ │ ├── configmaps # Конфигурация служб │ │ │ ├── appsettings │ │ │ │ ├── auth.yaml │ │ │ │ ├── ... │ │ │ │ └── webapi.yaml │ │ │ ├── auth.yaml │ │ │ ├── ... │ │ │ ├── ssl │ │ │ │ ├── auth-cache-ssl.yaml │ │ │ │ ├── ca-bundle.yaml │ │ │ │ ├── influxdb-ssl.yaml │ │ │ │ ├── minio-ssl.yaml │ │ │ │ ├── postgres-ssl.yaml │ │ │ │ └── rabbitmq-ssl.yaml │ │ │ └── webapi.yaml │ │ ├── deployments │ │ │ ├── auth.yaml │ │ │ ├── ... │ │ │ └── webapi.yaml │ │ ├── services │ │ │ ├── auth-cache.yaml │ │ │ ├── ... │ │ │ └── webapi.yaml │ │ └── statefulsets │ │ ├── auth-cache.yaml │ │ ├── influxdb.yaml │ │ ├── minio.yaml │ │ ├── postgres.yaml │ │ └── rabbitmq.yaml │ ├── values-override.yaml │ ├── values-ssl.yaml │ └── values.yaml └── testit_frontend # Конфигурация веб-сервера ├── Chart.yaml ├── templates │ ├── configmaps │ │ └── frontend.yaml │ ├── deployments │ │ └── frontend.yaml │ └── services │ ├── frontend.yaml │ └── ingress.yaml ├── values-override.yaml ├── values-ssl.yaml └── values.yaml # Основной конфигурационный файл
Предварительная настройка параметров
Так как работа Teamstorm требует наличие работающего программного обеспечения TestIT, то для успешного старта вам нужно внести следующие изменения в конфигурацию :ts-testit: Teamstorm:
-
Убедитесь в том, что параметр
CWM_ENABLED: "true"
дляtestit-backend/values.yaml
иtestit-frontend/values.yaml
: -
Укажите DNS имена для следующих служб Teamstorm в файле конфигурации TestIt
testit-frontend/values.yaml
, учитывая имя пространства Kubernetesteamstorm
:general: config: CWM_ENABLED: "true" CWM_S3_BUCKET_NAME: "cwm" CWM_S3_BUCKET_SECRET_KEY: "secretKey" WIKI_S3_BUCKET_NAME: "wiki" WIKI_S3_BUCKET_SECRET_KEY: "secretKey" TASK_TRACKER_GATEWAY_API: "task-tracker-gateway-api.teamstorm:8080" WIKI_GATEWAY_API_UPSTREAM: "wiki-gateway-api.teamstorm:8080" TASK_TRACKER_WEB_APP: "task-tracker-web-app.teamstorm:8080" NOTIFICATION_SERVICE_HUB: "notification-service-hub.teamstorm:8080" CWM_PUBLIC_GATEWAY_API: "cwm-public-gateway-api.teamstorm:8080"
Внимание
Сгенерируйте значения параметров
CWM_S3_BUCKET_SECRET_KEY
иWIKI_S3_BUCKET_SECRET_KEY
. Обратите внимание, что недопустимым символами являются$
: -
Убедитесь в соответствии выставленных значений параметров
CWM_S3_BUCKET_SECRET_KEY
иWIKI_S3_BUCKET_SECRET_KEY
в файлах конфигурации Teamstorm и TestITvalues.yml
:3.1
teamstorm/values.yml
:3.2
testit-frontend/values.yaml
-
Параметры секции
main.tms
конфигурационного файла Teamstorm должны указывать на соответствующие сервисы TestItmain: ... tms: auth_url: "http://auth.testit:8080" auth_cache_url: "auth-cache.testit" avatars_api_url: "http://avatars-api.testit:8080/api/" license_url: "http://license-service.testit:8080" s3_endpoint_url: "http://minio.testit:9000" s3_access_key: "testitAccessKey" s3_secret_key: "testitSecretKey" use_auth_openid: "false" ...
Внимание
Конфигурационные файлы предустановлены с учётом использования пространств имен
TestIt
иTeamstorm
. В случае их изменения требуются отразить это в конфигурационных файлах.
Установка приложения
Перед установкой ещё раз убедитесь в корректности выполненных шагов по подготовке к старту кластера.
-
Примените настройки выполненные относительно TestIt в шаге предварительной настройки, где
${TESTIT_NAMESPACE}
- имя пространства Kubernetes, в котором развёрнут TestIt: -
Распакуйте файлы приложения Teamstorm и перейдите в разархивированную директорию:
-
Для запуска кластера приложения Teamstorm выполните следующую команду, установив значение
${TEAMSTORM_NAMESPACE}
:
Ended: Установка в Kubernetes
Ended: Версия 2.33.3
Версия 2.0.0
Назначение документа
Документ описывает действия системного администратора по установке и настройке ПО TeamStorm v. 2.0.0 и выше.
Установка программного ПО
Установка ПО TeamStorm осуществляется только после предварительной установки ПО Test IT.
Установка Test IT описана в документации Test IT.
ПО TeamStorm необходимо устанавливать на тот же хост, на который установлено ПО Test IT.
Установка, перезапуск и удаление в Docker Compose
Требования
Docker Engine 20.10.17 и выше.
Test IT 4.2.4 и выше, рекомендуется последняя версия.
ВНИМАНИЕ
Для обновления до версии 2.0.0 необходимо предварительно обновить TeamStorm до версии 1.34.0
Состав поставки
images.tar
- архив с образами (только в архиве для автономной установки).
Состав поставки TeamStorm:
.env
- конфигурационный файл, содержащий переменные, используемые для обращения к контейнерам TeamStorm;docker-compose.yml
- конфигурационный файл Docker Compose.
Установка и настройка Test IT
-
Загрузите и установите ПО Test IT в соответствии с документацией Test IT.
-
Настройте поддержку TeamStorm в Test IT, заменив значение переменной
CWM_ENABLED
: -
Настройте поддержку WIKI в Test IT установив значения переменных
WIKI_ENABLED
иWIKI_S3_BUCKET_SECRET_KEY
: -
Следующие переменные в конфигурационных файлах
testit
иteamstorm
должны совпадать:testit/.env
teamstorm/.env
Комментарий FRONTEND_URL CWM_FRONTEND_URL Например, "https://teamstorm.mycompany.ru" CWM_S3_BUCKET_SECRET_KEY CWM_S3_BUCKET_SECRET_KEY Переменная не должна содержать символ $
WIKI_S3_BUCKET_SECRET_KEY WIKI_S3_BUCKET_SECRET_KEY Переменная не должна содержать символ $
-
Убедитесь, что сервис
auth
имеет настройку для редактирования ролей:
При обновлении с Test IT 4.2.4 на Test IT 4.3.0 дополнительные действия не требуются.
Подготовка
-
Измените значения переменных по умолчанию в .env-файле.
-
Задайте параметры
vm.max_map_count=262144
иvm.overcommit_memory=1
: -
Заблокируйте все порты, кроме порта 80, необходимого для доступа к пользовательскому интерфейсу.
-
Опционально: для обслуживания системы посредством протокола SSH необходимо открыть порт
22
(может быть переназначено на конкретной конфигурации). Для работы по HTTPS необходимо открыть порт443
. Пример открытия доступа к портам для CentOS 8:
Автономная установка
Данный тип установки поможет установить продукт, если сервер изолирован от сети Internet и нет возможности получить Docker-образы с публичных репозиториев.
-
Распакуйте содержимое архива автономной установки, например, в папку
~/teamstorm_v2.0.0
. -
Создайте сеть и кластер вручную или воспользуйтесь скриптом автоматического развертывания из поставки:
cd ${PROJECT_HOME}/teamstorm
docker network create yoonion_network
docker compose -p teamstorm -f docker-compose.yml up -d
cd ${PROJECT_HOME}/testit
docker compose -p testit -f docker-compose.yml up -d
Перезапуск системы
Для перезапуска системы воспользуйтесь следующей командой:
Удаление системы
Для полного удаления системы и ее данных необходимо выполнить следующую команду:
cd teamstorm_v2.0.0
docker compose -f docker-compose.yml --project-name teamstorm down --volumes --timeout 120
Чтобы сохранить информацию для последующего использования, выполните команду без флага --volumes
.
Описание .env файла
Репозиторий для скачивания образов установки TeamStorm:
Текущая версия программы:
Ключи доступа к хранилищу прикрепляемых файлов в TeamStorm (minio):
Параметры подключения к RabbitMQ:
RABBITMQ_DEFAULT_HOST="teamstorm_rabbitmq"
RABBITMQ_DEFAULT_PASS="password"
RABBITMQ_DEFAULT_USER="teamstorm"
RABBITMQ_DEFAULT_VHOST="teamstorm"
Параметры подключения к базе данных (при установке внешней базы данных поменять на свои значения):
POSTGRES_DEFAULT_DB="postgres"
POSTGRES_DEFAULT_USER="postgres"
POSTGRES_DEFAULT_PASSWORD="password"
POSTGRES_DEFAULT_PORT="5432"
POSTGRES_DEFAULT_HOST="database_service"
Для каждой конкретной базы данных значения по умолчанию можно заменить:
POSTGRES_ATTACHMENT_DB_HOST="${POSTGRES_DEFAULT_HOST}"
POSTGRES_ATTACHMENT_DB_DB="teamstorm_attachment_db"
POSTGRES_ATTACHMENT_DB_USER="${POSTGRES_DEFAULT_USER}"
POSTGRES_ATTACHMENT_DB_PASSWORD="${POSTGRES_DEFAULT_PASSWORD}"
POSTGRES_ATTACHMENT_DB_PORT="${POSTGRES_DEFAULT_PORT}"
POSTGRES_COMMENT_DB_HOST="${POSTGRES_DEFAULT_HOST}"
POSTGRES_COMMENT_DB_DB="teamstorm_comment_db"
POSTGRES_COMMENT_DB_USER="${POSTGRES_DEFAULT_USER}"
POSTGRES_COMMENT_DB_PASSWORD="${POSTGRES_DEFAULT_PASSWORD}"
POSTGRES_COMMENT_DB_PORT="${POSTGRES_DEFAULT_PORT}"
POSTGRES_DB_HOST="${POSTGRES_DEFAULT_HOST}"
Из вышеуказанных значений формируется строка подключения к базе данных:
PG_ATTACHMENT_CONNECTION_STRING="Host=${POSTGRES_DEFAULT_HOST};Port=${POSTGRES_DEFAULT_PORT};Database=teamstorm_attachment_db;Username=${POSTGRES_ATTACHMENT_DB_USER};Password=${POSTGRES_ATTACHMENT_DB_PASSWORD};"
PG_COMMENT_CONNECTION_STRING="Host=${POSTGRES_DEFAULT_HOST};Port=${POSTGRES_DEFAULT_PORT};Database=teamstorm_comment_db;Username=${POSTGRES_COMMENT_DB_USER};Password=${POSTGRES_COMMENT_DB_PASSWORD};"
PG_CONNECTION_STRING="Host=${POSTGRES_DEFAULT_HOST};Port=${POSTGRES_DEFAULT_PORT};Database=teamstormdb;Username=${POSTGRES_DB_USER};Password=${POSTGRES_DB_PASSWORD};Pooling=true"
Настройте параметры почтового сервера для уведомлений:
CWMFRONTENDURL="${CWM_FRONTEND_URL}"
— указать хост размещения TeamStorm;
MAILSERVERSETTINGS__HOST="${MAIL_SERVER_HOST}"
— указать хост почтового сервера. Например, mail.outlook.com;
MAILSERVERSETTINGS__PORT="${MAIL_SERVER_PORT}"
— указать порт почтового сервера. Например, 587;
MAILSERVERSETTINGS__FROM="${MAIL_SERVER_FROM}"
— указать сервисный аккаунт от имени которого будет происходить нотификация. Например, service@emailserver.com;
MAILSERVERSETTINGS__DISPLAYNAME=
"${MAIL_SERVER_DISPLAY_NAME}"
— указать имя сервисного аккаунта для отображения . Например, Mail Service;
MAILSERVERSETTINGS__USESTARTTLS="${MAIL_SERVER_USE_START_TLS}"
— использовать TLS для подключения к почстовому серверу;
MAILSERVERSETTINGS__USESSL="${MAIL_SERVER_USE_SSL}"
— использовать SSL для подключения к почтовому серверу;
MAIL_SERVER_TZ
="Europe/Moscow"
— указать идентификатор часового пояса (по умолчанию установлено московское время).
Таблица идентификаторов находится по адресу https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
Системные параметры оставить без изменений:
Проверка корректности установки
Для проверки корректности установки:
-
Убедитесь в том, что в Системе предсоздан пользователь с ролью администратора. Авторизуйтесь под учетной записью администратора.
-
Убедитесь в том, что лицензии TeamStorm добавлены.
-
Убедитесь в том, что в системе есть другие пользователи, или добавьте нового пользователя.
-
Создайте пространство.
-
Создайте папку.
-
Создайте задачу.
-
Создайте страницу.
-
Перейдите в настройки пространства, добавьте в пространство пользователя, созданного на шаге 3.
-
Перейдите в созданную задачу и отредактируйте ее:
- поменяйте ее статус;
- выберите ответственным пользователя, созданного на шаге 3.
- добавьте описание;
- добавьте вложение.
-
Убедитесь в том, что пользователю, созданному на шаге 3, пришло почтовое уведомление.
При необходимости для осуществления проверки воспользуйтесь указаниями Руководства администратора по добавлению лицензий и пользователей и Руководства пользователя.
Установка выполнена корректно, если все шаги проверки выполняются.
Версия 1.30.0 и более поздние
Назначение документа
Документ описывает действия системного администратора по установке и настройке ПО TeamStorm v. 1.30.0 и выше.
Установка программного ПО
Установка ПО TeamStorm осуществляется только после предварительной установки ПО Test IT.
Установка Test IT описана в документации Test IT.
ПО TeamStorm необходимо устанавливать на тот же хост, на который установлено ПО Test IT.
Установка, перезапуск и удаление в Docker Compose
Требования
Docker Engine 20.10.17 и выше.
Состав поставки
images.tar
- архив с образами (только в архиве для автономной установки).
Состав поставки TeamStorm:
.env
- конфигурационный файл, содержащий переменные, используемые для обращения к контейнерам TeamStorm;docker-compose.cwm.yml
- конфигурационный файл Docker Compose.
Установка и настройка TestIT
- Загрузите и установите ПО TestIT в соответствии с документацией Test IT.
-
Настройте поддержку TeamStorm в Test IT, заменив значение переменной
CWM_ENABLED
-
При обновлении с Test IT 4.0.2 на Test IT 4.1.0 и выше, а TeamStorm с 1.30.0 на 1.31.0 и выше необходимо выставить переменную для сервиса auth:
CAN_EDIT_SYSTEM_ROLES: true
.
Подготовка
-
Измените значения переменных по умолчанию в .env-файле.
-
Задайте параметры
vm.max_map_count=262144
иvm.overcommit_memory=1
: -
Заблокируйте все порты, кроме порта 80, необходимого для доступа к пользовательскому интерфейсу.
-
Опционально: для обслуживания системы посредством протокола SSH, необходимо открыть порт 22 (может быть переназначено на конкретной конфигурации). Для работы по HTTPS необходимо открыть порт 443. Пример открытия доступа к портам для CentOS 8:
Автономная установка
Данный тип установки поможет установить продукт, если сервер изолирован от сети Internet и нет возможности получить Docker-образы с публичных репозиториев.
-
Распакуйте содержимое архива автономной установки, например, в папку
~/teamstorm_v1.30.0
. -
Выполните следующие команды:
Перезапуск системы
Для перезапуска системы воспользуйтесь следующей командой:
cd teamstorm_v1.30.0
docker compose -f docker-compose.cwm.yml --project-name teamstorm restart --timeout 120
Удаление системы
Для полного удаления системы и ее данных необходимо выполнить следующую команду:
cd teamstorm_v1.30.0
docker compose -f docker-compose.cwm.yml --project-name teamstorm down --volumes --timeout 120
Чтобы сохранить информацию для последующего использования, выполните команду
без флага --volumes
.
Описание .env файла
Репозиторий для скачивания образов установки TeamStorm:
Текущая версия программы:
Ключи доступа к хранилищу прикрепляемых файлов в TeamStorm (minio):
Параметры подключения к RabbitMQ:
RABBITMQ_DEFAULT_HOST="teamstorm_rabbitmq"
RABBITMQ_DEFAULT_PASS="password"
RABBITMQ_DEFAULT_USER="teamstorm"
RABBITMQ_DEFAULT_VHOST="teamstorm"
Параметры подключения к базе данных (при установке внешней базы данных поменять на свои значения):
POSTGRES_DEFAULT_DB="postgres"
POSTGRES_DEFAULT_USER="postgres"
POSTGRES_DEFAULT_PASSWORD="password"
POSTGRES_DEFAULT_PORT="5432"
POSTGRES_DEFAULT_HOST="database_service"
Для каждой конкретной базы данных значения по умолчанию можно заменить:
POSTGRES_ATTACHMENT_DB_HOST="${POSTGRES_DEFAULT_HOST}"
POSTGRES_ATTACHMENT_DB_DB="teamstorm_attachment_db"
POSTGRES_ATTACHMENT_DB_USER="${POSTGRES_DEFAULT_USER}"
POSTGRES_ATTACHMENT_DB_PASSWORD="${POSTGRES_DEFAULT_PASSWORD}"
POSTGRES_ATTACHMENT_DB_PORT="${POSTGRES_DEFAULT_PORT}"
POSTGRES_COMMENT_DB_HOST="${POSTGRES_DEFAULT_HOST}"
POSTGRES_COMMENT_DB_DB="teamstorm_comment_db"
POSTGRES_COMMENT_DB_USER="${POSTGRES_DEFAULT_USER}"
POSTGRES_COMMENT_DB_PASSWORD="${POSTGRES_DEFAULT_PASSWORD}"
POSTGRES_COMMENT_DB_PORT="${POSTGRES_DEFAULT_PORT}"
POSTGRES_DB_HOST="${POSTGRES_DEFAULT_HOST}"
Из вышеуказанных значений формируется строка подключения к базе данных:
PG_ATTACHMENT_CONNECTION_STRING="Host=${POSTGRES_DEFAULT_HOST};Port=${POSTGRES_DEFAULT_PORT};Database=teamstorm_attachment_db;Username=${POSTGRES_ATTACHMENT_DB_USER};Password=${POSTGRES_ATTACHMENT_DB_PASSWORD};"
PG_COMMENT_CONNECTION_STRING="Host=${POSTGRES_DEFAULT_HOST};Port=${POSTGRES_DEFAULT_PORT};Database=teamstorm_comment_db;Username=${POSTGRES_COMMENT_DB_USER};Password=${POSTGRES_COMMENT_DB_PASSWORD};"
PG_CONNECTION_STRING="Host=${POSTGRES_DEFAULT_HOST};Port=${POSTGRES_DEFAULT_PORT};Database=teamstormdb;Username=${POSTGRES_DB_USER};Password=${POSTGRES_DB_PASSWORD};Pooling=true"
Системные параметры, оставить без изменений:
Версия 1.29.0 и более ранние
Назначение документа
Документ описывает действия системного администратора по установке и настройке ПО TeamStorm версии 1.29.0 и ниже.
Установка программного ПО
Установка, перезапуск и удаление в Docker Compose
Требования
https://docs.docker.com/compose/install/
Docker Engine 20.10.17 и выше
Docker Compose 1.17.0 и выше
Состав поставки
images.tar - архив с образами (только в архиве для автономной установки). Установка TeamStorm выполняется вместе с установкой Test IT.
Состав поставки Test IT указан в документации на ПО Test IT.
Состав поставки TeamStorm:
setup.sh
- основной скрипт установки.env
- конфигурационный файл, содержащий переменные, используемые для обращения к контейнерам Teamstormdocker-compose.yml
- конфигурационный файл Docker Compose
Подготовка
- Измените дефолтные значения переменных в .env-файле.
-
Задайте параметры
vm.max_map_count=262144
иvm.overcommit_memory=1
: -
Заблокируйте все порты, кроме порта 80, необходимого для доступа к пользовательскому интерфейсу.
-
Опционально: для обслуживания системы посредством протокола SSH, необходимо открыть порт 22 (может быть переназначено на конкретной конфигурации). Для работы по HTTPS необходимо открыть порт 443. Пример открытия доступа к портам для CentOS 7:
Автономная установка
Данный тип установки поможет установить продукт, если сервер изолирован от сети Internet и нет возможности получить Docker-образы с публичных репозиториев.
-
Распакуйте содержимое архива автономной установки, например, в папку
~/teamstorm_v0.16.0
. -
Выполните следующие команды:
Перезапуск системы
Для перезапуска системы воспользуйтесь следующей командой:
cd teamstorm_v0.16.0
docker compose -f docker-compose.yml --project-name teamstorm restart --timeout 120
Удаление системы
Для полного удаления системы и ее данных необходимо выполнить следующую команду:
cd teamstorm_v0.16.0
docker compose -f docker-compose.yml --project-name teamstorm down --volumes --timeout 120
Чтобы сохранить информацию для последующего использования, выполните команду без флага --volumes
.
Описание .env файла
Репозиторий для скачивания образов установки Teamstorm:
Текущая версия программы:
Ключи доступа к хранилищу прикрепляемых файлов в TeamStorm (minio):
Параметры подключения к RabbitMQ:
RABBITMQ_DEFAULT_HOST=teamstorm_rabbitmq
RABBITMQ_DEFAULT_PASS=password
RABBITMQ_DEFAULT_USER=teamstorm
RABBITMQ_DEFAULT_VHOST=teamstorm
Параметры подключения к БД, при установке внешней БД, поменять на свои значения:
POSTGRES_ATTACHMENT_DB=teamstorm_attachment_db
POSTGRES_COMMENT_DB=teamstorm_comment_db
POSTGRES_WORKFLOW_DB=teamstorm_workflow_db
POSTGRES_WORKITEM_LINK_RULE_DB=teamstorm_linkrule_db
POSTGRES_DB=teamstormdb
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
Для каждой конкретной базы данных значения по умолчанию можно поменять в строке подключения к базе данных:
PG_CONNECTION_STRING="Host=postgres;Port=5432;Database=${POSTGRES_DB};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD};Pooling=true"
PG_ATTACHMENT_CONNECTION_STRING="Host=attachmnet_service_postgres;Port=5432;Database=${POSTGRES_ATTACHMENT_DB};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD};"
PG_COMMENT_CONNECTION_STRING="Host=comment_service_postgres;Port=5432;Database=${POSTGRES_COMMENT_DB};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD};"
PG_WORKFLOW_CONNECTION_STRING="Host=workflow_service_postgres;Port=5432;Database=${POSTGRES_WORKFLOW_DB};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD};"
PG_WORKITEM_LINK_RULE_CONNECTION_STRING="Host=workitem_link_rule_service_postgres;Port=5432;Database=${POSTGRES_WORKITEM_LINK_RULE_DB};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD};"
Pooling=true
Системные параметры, оставить без изменений:
Ended: Архивные версии
Ended: Руководство системного администратора по установке, обновлению и резервному копированию
Руководство администратора TeamStorm по добавлению лицензий и пользователей ↵
Руководство администратора TeamStorm по добавлению лицензий и пользователей
Документ описывает действия администратора по добавлению лицензий, пользователей и присвоению системных ролей. Руководство содержит разделы:
Вход в систему
Первый вход в систему после установки
Вход
При установке в системе создается служебный пользователь с именем admin
и
паролем Qwerty123
. У данного пользователя есть права на изменение настроек
системы.
При первом входе в систему:
-
Выберите вход под локальной учетной записью.
-
Введите данные служебного пользователя (
admin
/Qwerty123
). -
Нажмите Войти или
Enter
.
Смена пароля
После входа в систему рекомендуется сменить пароль. Для этого:
-
Нажмите на иконку профиля и выберите Администрирование в выпадающем меню. По умолчанию откроется раздел Пользователи.
-
Нажмите на пользователя System Administrator. Откроется окно редактирования пользователя.
-
Введите новый пароль в соответствующем поле.
-
Нажмите Сохранить.
Регулярный вход в систему
Для входа в систему:
-
Откройте страницу входа в TeamStorm.
-
Выберите, с помощью какого сервиса вы войдете в систему. Local — локальный пользователь TeamStorm. Дополнительно могут отображаться подключения к LDAP-серверам, например к Active Directory, для авторизации с помощью пользователя AD.
-
Введите учетные данные администратора в поля Имя пользователя и Пароль.
-
Опционально: поставьте флажок Запомнить меня, чтобы не вводить учетные данные при следующем открытии браузера.
-
Нажмите Войти или клавишу
Enter
.
Лицензии
Лицензии позволяют пользователям получать доступ к основной функциональности системы.
Количество лицензий определяет количество ролей Пользователя TeamStorm, которые можно выдать в системе.
В случае если лицензия TeamStorm не активирована или срок ее действия истек, Пользователю TeamStorm будут недоступны:
- создание пространства;
- создание папки;
- создание задачи;
- создание расширения;
- создание спринта;
- создание страницы.
Просмотр ранее созданного содержимого не ограничивается.
Добавление лицензий
Чтобы добавить лицензию, вам потребуется получить ключи лицензий для ваших пользователей и добавить их в ваш аккаунт TeamStorm.
Чтобы получить ключи лицензий:
-
Используя аккаунт администратора нажмите на иконку профиля. В открывшемся меню выберите Администрирование.
-
На экране администрирования выберите раздел Лицензии.
-
Скопируйте идентификатор сервера, нажав значок копирования.
-
Отправьте сообщение на электронный адрес отдела продаж TeamStorm: info@teamstorm.io. При обращении укажите идентификатор сервера в теме письма или в его тексте. Ключи лицензий будут отправлены в ответном сообщении.
Чтобы добавить ключ:
- Откройте раздел Администрирование > Лицензии.
- Нажмите Добавить.
- Скопируйте ключ в соответствующее поле в открывшемся окне и нажмите Добавить.
Просмотр информации о лицензиях
Чтобы просмотреть информацию о лицензиях:
- Используя аккаунт администратора нажмите на иконку профиля. В открывшемся меню выберите Администрирование.
- На экране администрирования выберите раздел Лицензии.
После добавления лицензии на экране отобразится информация о ней, включая:
- ключ лицензии;
- статус (Активирована/Истекла/Неправильный Server ID);
- количество пользователей в рамках данной лицензии;
- срок действия лицензии (обновляется автоматически при добавлении нового ключа и продлении лицензии).
Над таблицей с информацией по лицензиям отображается количество активных пользователей в системе — сумма активных пользователей всех лицензий со статусом Активирована.
Настройка подключений ↵
Настройка подключений
TeamStorm позволяет добавлять пользователей из служебных каталогов и входить в систему с помощью:
Настройка подключений через AD/LDAP
После того, как системный администратор добавил необходимых пользователей в активную директорию (AD), необходимо настроить подключение по LDAP в системе TeamStorm.
-
Используя учетную запись с правами администратора, нажмите на иконку пользователя и перейдите в раздел Администрирование.
-
На верхней панели нажмите Подключения, убедитесь, что вы находитесь на вкладке AD/LDAP, нажмите Создать.
-
Заполните обязательные поля, нажмите Протестировать. В случае успешного тестирования сохраните подключение.
На вкладке AD/LDAP доступно редактирование соединения Active Directory (или LDAP) и кнопка для принудительной синхронизации. Чтение и синхронизация происходят каждые 10 минут.
В настройках AD/LDAP можно указывать схему пользователей и групп для поддержки большинства служб.
Реализована возможность добавлять пользователей только из одной группы в AD.
User Schema: Пример фильтра для пользователей из одной группы:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf=CN=Group-Sonya,OU=Sonya-test,OU=podrazdelenie2,OU=Podrazdelenie1,DC=mtest,DC=ru))
Пример фильтра, который добавляет пользователей из вложенных групп:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=CN=Group-Sonya,OU=Sonya-test,OU=podrazdelenie2,OU=Podrazdelenie1,DC=meistertest,DC=ru))
Group Schema: Фильтр для одной группы (имя начинается с ...) :
(&(objectCategory=group)(name=Group-Sonya*))
На странице подключений AD/LDAP можно создать несколько подключений, а также выбрать подключение по умолчанию.
Выбранное подключение по умолчанию будет отображаться на странице авторизации как основное.
Настройка подключений через OpenID Conect
TeamStorm позволяет авторизоваться с помощью сервисов аутентификации Keycloak и Auth0, основанных на протоколе OpenID Connect.
- Используя учетную запись с правами администратора, нажмите на иконку пользователя и перейдите в раздел Администрирование.
- В навигационном меню слева выберите Подключения.
- Перейдите на вкладку OpenID Connect.
- Нажмите Создать.
-
В открывшемся окне:
- введите название подключения, при необходимости можете добавить значок провайдера, для которого настраиваете подключение;
- укажите адрес провайдера, через которого вы настраиваете подключение, в поле Authority;
- в поле Endpoint укажите адрес провайдера с путем до конфигурационного файла OpenID для получения конфигурации OpenID;
- укажите идентификатор приложения провайдера в поле Client_ID;
- укажите секретный ключ приложения в поле Client_secret;
- в поле Scope укажите данные о пользователях, которые необходимо
получить из внешнего провайдера для входа в систему. Минимальный набор
данных:
OpenID
,email
,profile
.
-
Нажмите Сохранить.
- Во внешнем сервисе укажите
callback URL
. Ссылка должна иметь следующий формат:https://{teamstorm_domain}/api/auth/signin-oidc
, где{teamstorm_domain}
замените на адрес вашей системы TeamStorm.
После добавления провайдера OAuth 2.0 на странице логина появится возможность авторизации с помощью него.
Пользователь, который авторизуется с помощью провайдера OAuth 2.0, регистрируется в системе и наделяется системной ролью Пользователь при наличии свободных лицензий.
Ended: Настройка подключений
Управление пользователями и группами ↵
Управление пользователями и группами
В разделе описаны:
Добавление, редактирование и удаление пользователей
Вы можете добавлять, удалять и редактировать данные пользователей, добавленных в систему локально, через Active Directory (AD) или через OpenID Connect. Чтобы открыть окно информации о пользователях:
-
Используя учетную запись с правами администратора нажмите на иконку профиля. В открывшемся меню выберите Администрирование.
-
Перейдите в раздел Пользователи на панели слева.
Добавление пользователей
Вы можете добавлять локальных пользователей в систему TeamStorm:
-
В разделе Пользователи нажмите Добавить.
-
В открывшемся окне укажите:
- Логин пользователя - под этим логином пользователь сможет входить в систему.
- Пароль пользователя.
- Email пользователя.
-
ФИО - указанное имя будет отображаться в системе TeamStorm.
-
Нажмите Добавить.
После добавления новому пользователю присваивается системная роль.
Чтобы назначить системные роли пользователям:
-
Используя учетную запись с правами администратора нажмите на иконку профиля. В открывшемся меню выберите Администрирование.
-
В открывшемся окне перейдите в раздел Системные роли. В разделе отобразятся все пользователи и группы, добавленные в систему.
-
Если нужный пользователь не отображается, начните вводить его имя или логин в поле Добавить пользователя, далее выберите пользователя из результатов поиска.
-
Отметьте чекбокс напротив той роли, которую вы хотите дать определенному пользователю или группе пользователей. Роль применится и сохранится автоматически. При добавлении пользователя через AD/LDAP к группе у которой есть права в системе, синхронизация может занять около 20 минут.
Редактирование данных пользователя
После добавления пользователей вы можете просматривать всю информацию о них в разделе Пользователи. Используйте фильтр для кастомизации отображаемых данных. Настройки отображения сохраняются для текущего браузера.
Чтобы редактировать данные пользователя:
-
Нажмите на строку с именем пользователя, данные которого хотите отредактировать.
-
Внесите изменения.
-
Нажмите Сохранить.
Вы можете менять данные только для локальных пользователей. Данные пользователей, добавленных через AD необходимо менять в AD.
Удаление пользователей
Чтобы удалить локальных пользователей:
-
Поставьте флажок напротив локального пользователя (пользователей), которого хотите удалить из системы.
-
Нажмите Удалить.
Добавление, редактирование и удаление групп
Вы можете объединять пользователей в группы, чтобы добавлять их на созданные проекты и давать им определенные права доступа. Для просмотра информации о группах:
- Используя учетную запись с правами администратора нажмите на иконку профиля. В открывшемся меню выберите Администрирование.
- Выберите Группы на панели навигации слева.
Добавление и редактирование группы
- Нажмите Создать группу.
- Введите название группы и, при необходимости, описание.
- Нажмите Сохранить. Новая группа будет отображаться в списке групп в разделе Локальные группы.
- В списке пользователей справа отметьте чекбоксами тех пользователей, которых вы хотите добавить в созданную группу. При необходимости воспользуйтесь поиском по имени.
- Нажмите значок с изображением стрелки слева от списка пользователей.
Выделенные пользователи добавятся в группу.
Для удаления пользователей из группы:
- Выберите группу, из которой вы хотите удалить пользователей.
- Отметьте чекбоксами тех пользователей, которых вы хотите удалить, в списке в центральной части экрана.
- Нажмите Удалить.
Для редактирования названия и описания группы:
- Выберите группу, которую вы хотите удалить, в разделе Локальные группы.
- Нажмите напротив названия группы и выберите Изменить.
- На открывшей справа панели измените название и описание группы в соответствующих полях и нажмите Сохранить.
Удаление группы
- Выберите группу, которую вы хотите удалить, в разделе Локальные группы.
- Нажмите напротив названия группы и выберите Удалить.
- В открывшемся модальном окне нажмите Да, я хочу удалить группу.
Группа будет удалена.
Ended: Управление пользователями и группами
Системные роли
Ниже описаны роли доступа к Системе в целом.
Роли доступа к пространству и их настройка описаны в Руководстве пользователя в разделе Роли доступа к пространству.
Администратор Core
Роль Администратор Core предназначена для:
- добавления лицензий продукта;
- выдачи системных ролей пользователям и группам пользователей.
После входа в систему пользователя с ролью Администратор Core у него будет автоматически открыт раздел Администрирование.
Роль Администратор Core не списывает лицензию.
Администратор TeamStorm
Роль Администратор TeamStorm предназначена для управления настройками рабочих пространств.
После входа в систему пользователя с ролью Администратор TeamStorm у него будет автоматически открыта Главная страница с доступными для администрирования пространствами без доступа к содержимому этих пространств.
Роль Администратор TeamStorm не требует списания лицензии.
Пользователь TeamStorm
Роль Пользователь TeamStorm предназначена для работы с основной функциональностью системы.
После входа в систему пользователя с ролью Пользователь TeamStorm у него будет автоматически открыта Главная страница с возможностью работы с содержимым пространств, к которым есть доступ.
Подробнее роли доступа к пространствам описаны в Руководстве пользователя.
Роль Пользователь TeamStorm списывает лицензию.
Пользователь TeamStorm + Администратор TeamStorm
При такой комбинации ролей предусмотрено управление настройками рабочих пространств с возможностью работы с содержимым пространств, к которым у пользователя настроен доступ.
Добавление пользователя или группы в список
- Используя учетную запись с правами администратора нажмите на иконку профиля. В открывшемся меню выберите Администрирование.
- В навигационном меню слева выберите Системные роли.
- В разделе Пользователи или Группы в поле ввода начните вводить имя пользователя или группы, которую вы хотите добавить в список.
- Выберите нужного пользователя или группу из раскрывшегося списка.
Пользователь или группа будут добавлены в список для назначения им системных ролей.
Назначение системных ролей пользователям и группам
- Используя учетную запись с правами администратора нажмите на иконку профиля. В открывшемся меню выберите Администрирование.
- В навигационном меню слева выберите Системные роли. В открывшемся окне отобразятся пользователи и группы, добавленные в систему.
- Найдите нужного пользователя или группу и отметьте чекбоксами роли, которые вы хотите им назначить.
Роль применится и сохранится автоматически.
Ended: Руководство администратора TeamStorm по добавлению лицензий и пользователей
Руководство пользователя ↵
Руководство пользователя
Руководство описывает работу пользователей в системе TeamStorm .
Возможны небольшие, не влияющие на работу пользователя расхождения между иллюстрациями настоящего руководства и конкретной реализацией интерфейса системы.
Основные разделы руководства
Вход в систему ↵
Вход в систему
Вход в систему осуществляется через общий для TeamStorm и TestIT сервиc авторизации.
Для учетных записей администратора по умолчанию может быть открыта система TestIT , в этом случае необходимо совершить дополнительный переход в систему TeamStorm .
Для входа в систему:
-
Откройте страницу входа, общую для TeamStorm и TestIT .
-
Выберите локальную учетную запись или вход из домена, если настроены подключения к LDAP-серверам, например к Active Directory, для авторизации с помощью пользователя AD.
-
Опционально: поставьте флажок Запомнить меня, чтобы не вводить учетные данные при следующем открытии браузера.
-
Введите учетные данные пользователя и нажмите Войти.
-
Если по умолчанию открылась система Test IT, то на открывшейся странице нажмите иконку выбора продукта в правом верхнем углу экрана.
-
Выберите TeamStorm .
При входе может быть показан приветственный видеоролик.
Ended: Вход в систему
Главная страница ↵
Главная страница
В результате успешного входа в систему откроется Главная страница.
На Главной странице отображается:
- приветствие с указанием имени пользователя;
- количество и список доступных пользователю пространств;
- количество и список пришедших пользователю уведомлений;
- количество и список избранных страниц;
- количество и список назначенных пользователю задач.
В верхней части Главной страницы находятся:
- поле ввода для полнотекстового поиска;
- индикатор уведомлений;
- иконка меню информации о продукте;
- кнопка перехода к профилю пользователя.
Для перехода на главную страницу с других страниц нажмите надпись Главная или TeamStorm в левом верхнем углу экрана.
Закрепление пространств на Главной странице
На Главной странице можно закреплять пространства в списке доступных пользователю пространств.
Закрепленные пространства всегда отображаются в верхней части списка.
Для закрепления пространства нажмите кнопку справа от названия пространства в списке.
Для открепления пространства еще раз нажмите ту же кнопку.
Меню информации о продукте
Меню состоит из разделов:
-
Документация;
-
О продукте.
Для вызова меню нажмите кнопку в правой верхней части экрана.
При выборе раздела Документация откроется страница с документами на систему TeamStorm .
При выборе раздела О продукте откроется окно, где указаны:
- название продукта;
- версия продукта;
- ветка версии;
- хеш коммита.
Ended: Главная страница
Мои задачи и списания
Раздел Мои задачи предназначен для того, чтобы пользователи могли видеть все задачи в едином списке и управлять своими задачами и списаниями трудозатрат из него.
Раздел состоит из подразделов:
- Мои задачи;
- Доступные задачи;
- Доступные страницы;
- Мои заявки;
- Списания.
Для перехода в раздел нажмите Мои задачи в левом верхнем углу экрана или нажмите кнопку Все мои задачи в левой верхней части списка задач на Главной странице.
Мои задачи
Подраздел Мои задачи представляет собой таблицу со столбцами:
- Название;
- ID;
- Дата выполнения;
- Ответственный;
- Статус.
В правой верхней части указано общее количество назначенных на пользователя в настоящий момент задач.
В левой верхней части расположено поле поиска по разделу. Поиск осуществляется по названию или идентификатору задачи.
Ячейки таблицы активны и позволяют открывать карточку задачи (для столбцов Название и ID) или менять указанный в столбце атрибут (остальные столбцы) непосредственно из подраздела Мои задачи.
Для перехода в подраздел нажмите Мои задачи в левой верхней части экрана над списком задач.
Доступные задачи
Подраздел Доступные задачи позволяет видеть все задачи, которыми с вами поделились. Такие задачи находятся в пространствах, к которым у пользователя нет доступа, поэтому перейти в них можно только по ссылке.
Подраздел позволяет собрать все подобные задачи в едином представлении.
Подраздел Доступные задачи представляет собой таблицу со столбцами:
- Название (также отображается тип задачи);
- ID;
- Статус;
- Дата создания;
- Ответственный;
- Поделился (пользователь, который поделился задачей).
В таблице доступен поиск по названию или идентификатору задачи. В правой верхней части указано общее количество задач, которыми с вами поделились.
Ячейки таблицы активны и позволяют открывать карточку задачи (для столбцов Название и ID) или менять указанный в столбце атрибут непосредственно из подраздела.
Доступные страницы
Подраздел Доступные страницы позволяет видеть все страницы, которыми с вами поделились. Такие страницы находятся в пространствах, к которым у пользователя нет доступа, поэтому перейти на них можно только по ссылке.
Подраздел Доступные страницы представляет собой таблицу со столбцами:
- Название;
- Дата создания;
- Поделился (пользователь, который поделился страницей).
В таблице доступен поиск по названию страницы. В правой верхней части указано общее количество страниц, которыми с вами поделились.
Из таблицы можно открыть страницу в новой вкладке в режиме чтения.
Мои заявки
Подраздел Мои заявки позволяет видеть все созданные вами задачи по заявкам и отслеживать статус их выполнения, а также видеть историю заявок.
Подраздел представляет собой таблицу со столбцами:
- Название (также отображается тип заявки);
- ID;
- Статус;
- Дата создания;
- Дата выполнения;
- Ответственный.
В таблице доступна фильтрация задач по типу заявки и поиск задачи по названию или ID.
Списания
Подраздел Списания позволяет видеть все свои списания трудозатрат в едином списке и управлять списаниями из него.
Разрешение на работу со своими списаниями выдается на уровне администратора рабочего пространства. Если разрешений нет, то подраздел пользователю не отображается.
По умолчанию в подразделе в табличном виде отображаются только те задачи, по которым у пользователя уже были списания.
В таблице по умолчанию представлены задачи текущей недели. Для выбора другой недели на временной шкале воспользуйтесь кнопками навигации < > в правой верхней части экрана/
Для возврата к текущей неделе нажмите кнопку Текущая неделя.
Из списка можно открывать карточку задачи, нажав ее название.
Добавление задачи в список
- Нажмите кнопку + Добавить задачу в правой верхней части экрана.
- В открывшемся окне начните вводить часть названия или идентификатор задачи в поле ввода.
- Выберите нужную задачу из раскрывшегося списка.
Добавление списания
- В таблице списаний нажмите на пустую или заполненную ячейку, соответствующую той задаче и тому дню, для которых вы хотите добавить списание.
- В открывшемся окне введите количество затраченного времени в часах и комментарий к списанию (опционально).
- Нажмите кнопку +. Убедитесь, что списание и комментарий отобразились под полями ввода.
- Закройте окно, нажав ✖ в правом верхнем углу.
Списание будет добавлено и сумма трудозатрат динамически изменится в соответствующей ячейке таблицы.
Редактирование списания
- В таблице списаний нажмите на заполненную ячейку, соответствующую той задаче и тому дню, для которых вы хотите отредактировать списание.
- В открывшемся окне найдите списание, которое вы хотите отредактировать.
- Измените значение затраченного времени или текст комментария в соответствующих полях.
- Закройте окно, нажав ✖ в правом верхнем углу.
Удаление списания
- В таблице списаний нажмите на заполненную ячейку, соответствующую той задаче и тому дню, списание в которых вы хотите удалить.
- В открывшемся окне найдите списание, которое вы хотите удалить.
- Нажмите кнопку и выберите Удалить.
- Убедитесь в том, что списание удалено из списка и закройте окно.
Дашборды ↵
Дашборды
Дашборды позволяют пользователю организовывать свое рабочее пространство, отслеживать производительность, управлять проектами и выполнением задач.
Дашборд представляет собой информационную панель, на которой важная для пользователя аналитика представлена в форме динамически изменяющихся блоков — виджетов.
Дашборд может состоять из одного или нескольких виджетов.
Работа с дашбордами описана в подразделах:
Создание, настройка и удаление дашборда
Создание дашборда
- Нажмите Дашборды в левой верхней части экрана.
- На экране дашбордов нажмите Дашборд в правой верхней части.
- В открывшемся окне введите название нового дашборда и нажмите Создать.
Дашборд будет создан и отобразится в списке на экране дашбордов.
Дашборды из списка можно сортировать по названию или дате создания, а также искать при помощи поиска по названию.
Кроме того, создать новый дашборд можно с помощью копирования.
Добавление виджетов в дашборд
- Нажмите на название нужного дашборда в списке на экране дашбордов. При необходимости воспользуйтесь поиском или сортировкой.
- Если дашборд не содержит виджетов, то на открывшемся экране приветствия нажмите на название нужного виджета.
- Если дашборд уже содержит виджеты, нажмите Виджет в правой верхней части основного экрана и в открывшемся окне нажмите на название нужного виджета. При необходимости воспользуйтесь поиском по названию.
- Введите или измените по своему усмотрению название нового виджета.
- Примените другие настройки (настройки расположения, фильтрация по пользователям и т.д.), если виджет их предполагает.
- Нажмите Добавить.
Виджет будет добавлен и отобразится на основном экране дашборда.
Перемещение виджета на дашборде
- Захватите левой кнопкой мыши специальное поле рядом с названием виджета.
- Не отпуская кнопки, перемещайте виджет по дашборду до желаемого места.
- Отпустите кнопку.
Виджет будет перемещен в нужное место на дашборде.
Удаление виджета из дашборда
- Нажмите на название нужного дашборда в списке на экране дашбордов. При необходимости воспользуйтесь поиском или сортировкой.
- Нажмите в правом верхнем углу виджета, который вы хотите удалить.
- Выберите Удалить.
- В открывшемся окне нажмите Да, я хочу удалить виджет.
Виджет будет удален из дашборда.
Переименование дашборда
- Нажмите на название нужного дашборда в списке на экране дашбордов. При необходимости воспользуйтесь поиском или сортировкой.
- Нажмите в правом верхнем углу экрана и выберите Переименовать.
- В отрывшемся модальном окне введите новое название дашборда и нажмите Сохранить.
Удаление дашборда
- Нажмите на название нужного дашборда в списке на экране дашбордов. При необходимости воспользуйтесь поиском или сортировкой.
- Нажмите в правом верхнем углу экрана и выберите Удалить.
- В отрывшемся модальном окне нажмите Да, я хочу удалить дашборд.
Дашборд будет удален вместе со всеми виджетами.
Копирование дашборда
TeamStorm позволяет создавать новый дашборд, скопировав один из существующих.
При копировании сохраняются все виджеты, настройки и данные, кроме настроек функции Поделиться дашбордом.
Для того, чтобы скопировать дашборд:
- Перейдите в раздел Дашборды.
- Нажмите в строке с нужным дашбордом и выберите Сделать копию.
- В открывшемся модальном окне введите название нового дашборда. По умолчанию название будет иметь вид Копия <название копируемого дашборда>.
- Нажмите Сохранить.
Дашборд будет скопирован и отобразится в списке в разделе Дашборды.
Виджеты ↵
Виджеты
Виджеты — это динамически изменяющиеся блоки, представляющие аналитическую информацию по какой-либо теме, связанной с управлением проектом или задачами.
В настоящее время в системе реализованы виджеты:
Мои задачи
Виджет Мои задачи представляет собой таблицу со столбцами:
- Название;
- ID;
- Дата выполнения;
- Ответственный;
- Статус.
В правой верхней части виджета расположены:
- информация о количестве назначенных на пользователя задач;
- кнопка обновления данных;
- кнопка настройки виджета:
- кнопка, вызывающая меню управления виджетом.
В левой верхней части расположено поле поиска по виджету. Поиск осуществляется по названию или идентификатору задачи.
Ячейки таблицы активны и позволяют открывать карточку задачи (для столбцов Название и ID) или менять указанный в столбце атрибут непосредственно из виджета (для остальных столбцов).
Настройка виджета
В виджете Мои задачи из настроек доступно только изменение названия:
- Нажмите кнопку в правой верхней части виджета.
- В открывшемся модальном окне введите новое название.
- Нажмите Сохранить.
Учет трудозатрат
Виджет Учет трудозатрат предназначен для ведения учета трудозатрат.
Виджет Учет трудозатрат используется пользователем с функциями менеджера для того, чтобы просматривать списания трудозатрат другими пользователями.
Виджет Учет трудозатрат по умолчанию доступен администратору пространства. Другим пользователям при необходимости можно выдать соответствующее разрешение (Просмотр списаний по всем задачам), создав отдельную пользовательскую роль доступа.
В виджете представлен агрегированный учет трудозатрат пользователей во всех пространствах, где менеджер является администратором или имеет соответствующее разрешение.
Трудозатраты приведены в виде таблицы со списком задач и списаниям трудозатрат по ним в определенные дни. В таблице возможно отображение несколько групп списаний по одной и той же задаче. Строки таблицы отсортированы по дате создания задачи (новые сверху). Если по задаче есть несколько строк со списаниями, то внутри группы они сортируется по списавшим трудозатраты пользователям в алфавитном порядке.
Дополнительно в таблице отображается колонка с суммой списанных часов в строке за отображаемые две недели.
Доступно открытие карточек задач, которые представлены в таблице.
В правой верхней части виджета расположены:
- информация о количестве назначенных на пользователя задач;
- кнопка обновления данных;
- кнопка настройки виджета:
- кнопка, вызывающая меню управления виджетом.
Добавление виджета
- Перейдите к добавлению виджета и выберите Запрос.
- В открывшемся окне:
- введите название нового виджета;
- выберите из выпадающего списка пространства из которых будет формироваться отчет или оставьте фильтр пустым;
- выберите пользователей или группы, данные по которым вы хотите видеть в отчете.
- Нажмите Добавить.
Список пользователей и групп состоит из всех пользователей и групп, имеющих системную роль Пользователь TeamStorm.
Если выбраны определенные пространства, то в списке доступны, только группы, добавленные в эти пространства.
Навигация по таблице
По умолчанию отображается информация за две недели, при это текущий день недели выделяется цветом.
Для перемещения по шкале времени используйте кнопки навигации <
>
в правом верхнем углу над таблицей.
Для возврата к текущей неделе нажмите кнопку Текущая неделя.
Настройка виджета
Пользователь может изменять название виджета. Для того, чтобы изменить название:
- Нажмите кнопку в правой верхней части виджета.
- В открывшемся окне внесите необходимые изменения.
- Нажмите Сохранить.
В виджете Учет трудозатрат доступна фильтрация данных данных по:
- пространству;
- пользователю.
Для фильтрации по пространству:
- Нажмите кнопку в правой верхней части виджета.
- В открывшемся модальном окне нажмите Пространство .
- Отметьте в списке одно или несколько пространств, по которым вы хотите получить данные.
- При необходимости очистить фильтры, нажмите Очистить в нижней части меню со списком пространств.
- Нажмите Сохранить.
Для фильтрации по пользователю:
- Нажмите кнопку в правой верхней части виджета
- В открывшемся модальном окне нажмите Пользователь или группа .
- Отметьте в списке пользователей или группы, по которым вы хотите получить данные.
- При необходимости очистить фильтры, нажмите Очистить в нижней части меню со списком пользователей.
- Нажмите Сохранить.
Группировка списаний
TeamStorm позволяет группировать списания по трудозатратам в виджете Учет трудозатрат.
Группировка по разным параметрам улучшает возможности для анализа трудозатрат.
Для того, чтобы сгруппировать списания:
- Перейдите в виджет Учет трудозатрат.
- Нажмите кнопку Настроить в правой верхней части виджета.
- Нажмите Группировать.
- Выберите параметр для группировки из раскрывающегося списка:
- по задаче;
- по пользователю;
- по элементу портфеля;
- по тегу.
- Выберите атрибут из раскрывающегося списка (для группировки по тегу).
- Нажмите Сохранить.
При группировке по задаче из отчета можно скрывать имена пользователей, списавших трудозатраты, чтобы сконцентрировать внимание на общем времени, списанном на выполнение задачи.
При группировке по пользователю из отчета можно скрывать названия задач, на которые списано время, чтобы сконцентрировать внимание на том, сколько времени в сумме списал тот или иной пользователь.
При группировке по элементу портфеля не отображаются имена пользователей, списавших трудозатраты и вы можете скрыть названия задач, чтобы сконцентрировать внимание на том, сколько времени списано в том или ином элементе портфеля.
Для того, чтобы отменить группировку, в списке выберите Без группировки и нажмите Сохранить.
При группировке по тегу не отображаются имена пользователей, списавших трудозатраты и вы можете скрыть названия задач, чтобы сконцентрировать внимание на том, сколько времени списано по задачам с тем или иным тегом.
Отдельно при группировке по тегу выделяются:
- задачи, у которых есть атрибут типа "Тег", но он не заполнен;
- задачи, у которых нет атрибута выбранного типа.
Запрос
Виджет Запрос представляет собой отображение ранее созданного в системе запроса на дашборде.
Виджет представляет собой таблицу со столбцами, которые соответствуют выбранным при создании запроса фильтрам.
Столбцы можно добавлять или удалять при настройке виджета.
Добавление виджета
- Перейдите к добавлению виджета и выберите Запрос.
- В открывшемся окне выберите запрос из выпадающего списка.
- Нажмите Добавить.
Настройка виджета
- Нажмите кнопку в правой верхней части виджета.
- В открывшемся модальном окне совершите нужные вам изменения:
- выберите новый запрос;
- измените название запроса;
- добавьте или удалите столбцы для отображения.
- Нажмите Сохранить.
Список задач
Виджет Список задач представляет собой запрос, с помощью которого можно собирать и отфильтровывать задачи из нескольких пространств и находящихся в них папок.
Столбцы, которые будут отображаться в запросе, можно выбирать во время создания или настройки списка.
Данные из списка задач можно выгружать в формат CSV.
Создание списка задач
- Перейдите к добавлению виджета и выберите Список задач.
- В открывшемся окне:
- введите название нового списка;
- выберите расположения, из которых будут взяты задачи для формирования списка;
- нажмите в блоке Фильтрация и выберите фильтры, чтобы выбрать задачи по определенным критериям. При необходимости создайте сложный фильтр;
- выберите колонки, которые будут отображаться в списке.
- Нажмите Добавить.
Расположения в окне создания списка представлены в виде древовидной структуры, в которой первый уровень — пространства, второй и последующие — папки, спринты, запросы и другие расположения. Для того, чтобы раскрыть вложенные уровни, воспользуйтесь кнопками и
Примечание
Если пользователю недоступно хотя бы одно пространство, выбранное для построения запроса, то в виджете отобразится сообщение Не удалось получить список задач для этого виджета.
Фильтры для списка задач настраиваются так же, как фильтры в представлениях, включая фильтры по типу связи.
При необходимости отфильтровать задачи в уже созданном списке перейдите к Настройке виджета.
Настройка виджета
- Нажмите кнопку в правой верхней части виджета.
- В открывшемся модальном окне внесите необходимые изменения как указано в подразделе Создание списка задач.
- Нажмите Сохранить.
Счетчик
Виджет Счетчик отображает количество задач в пространственном или глобальном запросе.
Добавление счетчика
Добавление счетчика для существующего запроса
- Перейдите к добавлению виджета и выберите виджет Счетчик.
- В открывшемся окне по умолчанию будет открыта вкладка Выбор существующего запроса. На вкладке:
- введите название нового счетчика (по умолчанию — Счетчик);
- выберите из списка запрос, счетчик для которого вы хотите добавить;
- Нажмите Добавить.
Счетчик будет добавлен на дашборд. На виджете отображается количество задач для выбранного запроса и инструменты управления виджетом.
Добавление счетчика для нового запроса
- Перейдите к добавлению виджета и выберите виджет Счетчик.
- В открывшемся окне переключитесь на вкладку Новый запрос. На вкладке:
- введите название нового счетчика (по умолчанию — Счетчик);
- выберите расположения, из которых будет формироваться запрос;
- нажмите в блоке Фильтрация и выберите фильтры по системным или пользовательским атрибутам.
- Нажмите Добавить.
Подробнее о формировании глобальных запросов см. раздел Список задач.
Настройка виджета
- Нажмите кнопку в правой верхней части виджета.
- В открывшемся окне внесите необходимые изменения как указано в подразделе Добавление счетчика.
- Нажмите Сохранить.
Примечание
Наборы настроек при редактировании счетчиков для существующих и для новых запросов различаются.
Создано и выполнено
Виджет Создано и выполнено позволяет отображать динамику созданных и выполненных задач за определенные промежутки времени.
Таким образом пользователь может анализировать рабочую нагрузку и выполнение поставленных планов.
Создание виджета
Создание виджета для существующего запроса
- Перейдите к добавлению виджета и выберите виджет Создано и выполнено.
- В открывшемся окне по умолчанию будет открыта вкладка Выбор существующего запроса. На вкладке:
- введите название нового виджета (по умолчанию — Создано и выполнено);
- выберите из списка запрос, виджет для которого вы хотите добавить;
- выберите период для отображения на виджете;
- выберите временной шаг для шкалы времени.
- Нажмите Добавить.
На дашборд будет добавлен виджет с диаграммой, отражающей соотношение созданных задач к выполненным в выбранном запросе.
Создание виджета для нового запроса
- Перейдите к добавлению виджета и выберите виджет Создано и выполнено.
- В открывшемся окне переключитесь на вкладку Новый запрос. На вкладке:
- введите название нового виджета (по умолчанию — Создано и выполнено);
- выберите расположения, из которых будет формироваться запрос;
- нажмите в блоке Фильтрация и выберите фильтры по системным или пользовательским атрибутам;
- выберите период для отображения на виджете;
- выберите временной шаг для шкалы времени.
- Нажмите Добавить.
На дашборд будет добавлен виджет с диаграммой, отражающей соотношение созданных задач к выполненным для выбранной области данных и указанного периода.
Настройка виджета
- Нажмите кнопку в правой верхней части виджета.
- В открывшемся окне внесите необходимые изменения как указано в подразделе Создание виджета.
- Нажмите Сохранить.
Примечание
Наборы настроек при редактировании виджетов для существующих и для новых запросов различаются.
Круговая диаграмма
Виджет Круговая диаграмма в графической форме отображает состояние определенной совокупности задач.
Круговую диаграмму можно формировать по различным параметрам и группировать по атрибутам.
Параметры для формирования круговой диаграммы:
- Количество задач;
- Сумма оценок в часах;
- Сумма затраченного времени в часах;
- Сумма оценок в сторипоинтах.
Атрибуты для группировки круговой диаграммы:
- Тип;
- Статус;
- Ответственный;
- Автор;
- Автор изменения.
Создание круговой диаграммы
Создание круговой диаграммы для существующего запроса
- Перейдите к добавлению виджета и выберите виджет Круговая диаграмма.
- В открывшемся окне по умолчанию будет открыта вкладка Выбор существующего запроса. На вкладке:
- введите название новой диаграммы (по умолчанию — Круговая диаграмма);
- выберите из списка запрос, диаграмму для которого вы хотите добавить;
- выберите параметр, по которому будет формироваться диаграмма;
- выберите параметр, по которому будут сгруппированы показатели на диаграмме;
- выберите представление для отображения показателя — в абсолютных числах или в процентах.
- Нажмите Добавить.
На дашборд будет добавлена круговая диаграмма, отражающая аналитические данные по задачам для выбранного запроса.
Пример
Круговая диаграмма, сформированная по параметру Количество задач
и сгруппированная по типу задачи.
Данные отображаются в абсолютных числах.
Создание круговой диаграммы для нового запроса
- Перейдите к добавлению виджета и выберите виджет Круговая диаграмма.
- В открывшемся окне переключитесь на вкладку Новый запрос. На вкладке:
- введите название нового виджета (по умолчанию — Круговая диаграмма);
- выберите расположения, из которых будет формироваться запрос;
- нажмите в блоке Фильтрация и выберите фильтры по системным или пользовательским атрибутам;
- выберите параметр, по которому будет формироваться диаграмма;
- выберите параметр, по которому будут сгруппированы показатели на диаграмме;
- выберите представление для отображения показателя — в абсолютных числах или в процентах.
- Нажмите Добавить.
На дашборд будет добавлена круговая диаграмма, отражающая данные по задачам для созданного при помощи выбора расположений и фильтров запроса.
Настройка виджета
- Нажмите кнопку в правой верхней части виджета.
- В открывшемся окне внесите необходимые изменения как указано в подразделе Создание виджета.
- Нажмите Сохранить.
Примечание
Наборы настроек при редактировании виджетов для существующих и для новых запросов различаются.
Столбчатая диаграмма
Виджет Столбчатая диаграмма в графической форме отображает состояние определенной совокупности задач.
Столбчатую диаграмму можно формировать по различным параметрам, распределять и группировать по атрибутам.
На столбчатой диаграмме по оси Y располагаются параметры, а по оси Y — атрибуты для распределения.
Параметры для формирования столбчатой диаграммы:
- Количество задач;
- Сумма оценок в часах;
- Сумма затраченного времени в часах;
- Сумма оценок в сторипоинтах;
- Пользовательские параметры, созданные в системе.
Атрибуты для распределения:
- Дата начала;
- Дата выполнения;
- Дата завершения;
- Дата изменения;
- Дата создания;
- Тип;
- Статус;
- Ответственный;
- Автор;
- Автор изменения;
- Пользовательские атрибуты, созданные в системе.
Атрибуты для группировки круговой диаграммы:
- Тип;
- Статус;
- Ответственный;
- Автор;
- Автор изменения.
Создание столбчатой диаграммы
Создание столбчатой диаграммы для существующего запроса
- Перейдите к добавлению виджета и выберите виджет Столбчатая диаграмма.
- В открывшемся окне по умолчанию будет открыта вкладка Выбор существующего запроса. На вкладке:
- введите название новой диаграммы (по умолчанию — Столбчатая диаграмма);
- выберите из списка запрос, диаграмму для которого вы хотите добавить;
- выберите параметр, по которому будет формироваться диаграмма;
- выберите атрибут для распределения. При выборе атрибута типа Дата на форме отобразятся поля для выбора периода и временного шага;
- выберите период, данные по которому вы хотите получить (при выборе распределения по атрибуту типа Дата);
- выберите временной шаг: день, неделя, месяц, год (при выборе распределения по атрибуту типа Дата);
- выберите параметр, по которому будут сгруппированы показатели на диаграмме;
- выберите тип сортировки данных: от большего к меньшему или от меньшего к большему; (для любых распределений, кроме распределений по атрибуту типа Дата).
- Нажмите Добавить.
На дашборд будет добавлена столбчатая диаграмма, отражающая аналитические данные по задачам для выбранного запроса.
Пример
Столбчатая диаграмма, сформированная по параметру Количество задач с распределением по дате начала, за период равный прошедшим тридцати дням с временным шагом один день и группировкой по ответственному. Фокус на столбце за 6 октября. В легенде показывается количество задач, ответственный, дата начала.
Создание столбчатой диаграммы для нового запроса
- Перейдите к добавлению виджета и выберите виджет Столбчатая диаграмма.
- В открывшемся окне переключитесь на вкладку Новый запрос. На вкладке:
- введите название нового виджета (по умолчанию — Столбчатая диаграмма);
- выберите расположения, из которых будет формироваться запрос;
- нажмите в блоке Фильтрация и выберите фильтры по атрибутам;
- выберите параметр, по которому будет формироваться диаграмма;
- выберите атрибут для распределения. При выборе атрибута типа Дата на форме отобразятся поля для выбора периода и временного шага;
- выберите период, данные по которому вы хотите получить (при выборе распределения по атрибуту типа Дата);
- выберите временной шаг: день, неделя, месяц, год (при выборе распределения по атрибуту типа Дата);
- выберите параметр, по которому будут сгруппированы показатели на диаграмме;
- выберите тип сортировки данных: от большего к меньшему или от меньшего к большему; (для любых распределений, кроме распределений по атрибуту типа Дата).
- Нажмите Добавить.
На дашборд будет добавлена столбчатая диаграмма, отражающая данные по задачам для созданного при помощи выбора расположений и фильтров запроса.
При фокусе на элементе диаграммы в легенде дополнительно указывается расположение (пространство), из которого сформирован элемент.
Настройка виджета
- Нажмите кнопку в правой верхней части виджета.
- В открывшемся окне внесите необходимые изменения как указано в подразделе Создание виджета.
- Нажмите Сохранить.
Примечание
Наборы настроек при редактировании виджетов для существующих и для новых запросов различаются.
Ended: Виджеты
Ended: Дашборды
Заявки ↵
Заявки
Заявки позволяют пользователям создавать задачи в тех пространствах, к которым у них нет доступа.
Заявки можно создавать как по прямой ссылке, например, присланной в личном сообщении, так и из раздела Заявки.
Созданные по типу заявки задачи доступны для тех пользователей, которые их создали.
Подробнее о заявках:
Создание и настройка типа заявки
Для создания и настройки типа заявки необходимо иметь разрешение Управление типами заявок. По умолчанию разрешение включено для администратора пространства, в котором будут создаваться заявки.
Создание типа заявки
- Перейдите в пространство, для которого вы хотите создать типы заявок.
- Нажмите напротив названия пространства в панели навигации и выберите Настройки.
- Нажмите Типы заявок на панели слева.
- Нажмите Добавить тип заявки в правой верхней части экрана Типы заявок.
- На открывшейся справа панели заполните поля:
- Название — название типа заявки, обязательное поле;
- Описание — краткое описание типа заявки, которое будет отображаться в разделе Заявки пользователю, который будет создавать заявку;
- Тип создаваемой задачи — выберите тип создаваемой задачи из раскрывающегося списка, который содержит те типы задач, которые присутствуют в данном пространстве.
- Папка для созданных задач — выберите папку для задач, создаваемых по типу заявки, из раскрывающегося списка, который содержит названия всех папок,созданных в данном пространстве.
- Нажмите Сохранить.
Тип заявки будет создан и отображен в списке на экране Типы заявок.
После создания тип заявки не активирован.
Редактирование типа заявки
- Перейдите в пространство, типы заявок для которого вы хотите отредактировать.
- Нажмите напротив названия пространства в панели навигации и выберите Настройки.
- Нажмите Типы заявок на панели слева.
- Нажмите на название типа заявки в списке на экране Типы заявок.
- На открывшейся справа панели измените значения в полях:
- Название — название типа заявки, обязательное поле;
- Описание — краткое описание типа заявки, которое будет отображаться в разделе Заявки пользователю, который будет создавать заявку;
- Тип создаваемой задачи — выберите тип создаваемой задачи из раскрывающегося списка, который содержит все типы задач, ранее созданные в данном пространстве.
- Папка для созданных задач — выберите папку для задач, создаваемых по типу заявки, из раскрывающегося списка, который содержит названия всех папок, созданных в данном пространстве.
- Нажмите Сохранить.
Тип заявки будет сохранен с новыми параметрами.
Активация и деактивация типа заявки
- Перейдите на экран Типы заявок в настройках пространства.
- Выберите тип заявки, который вы хотите активировать или деактивировать.
- В столбце Активно переведите ползунок в активное (подсвечивается синим ветом) или неактивное (сохраняет серый цвет) положение.
Активированные типы заявок отображаются пользователям в разделе Заявки.
Удаление типа заявки
- Перейдите на экран Типы заявок в настройках пространства.
- Нажмите кнопку удаления напротив названия того типа заявки, который вы хотите удалить.
- В открывшемся модальном окне нажмите Да, я хочу удалить тип заявки.
Тип заявки будет удален. Пользователи, переходящие по ссылке на удаленный тип заявки увидят экран с сообщением 404 Такой страницы не существует
.
ВНИМАНИЕ
При удалении типа задачи, использующегося в типе заявки, пользователю отображается уведомление о том, что будет удален тип заявки. Пользователь должен подтвердить действие. Существующие задачи по заявкам этого типа теряют признак типа.
Создание ссылки на тип заявки
- Перейдите на экран Типы заявок в настройках пространства.
- Нажмите кнопку Скопировать ссылку напротив названия того типа заявки, для которого вы хотите создать ссылку.
Ссылка будет скопирована в буфер обмена. Пользователю будет отображено сообщение Ссылка на тип заявки скопирована.
Ссылку можно отправить другому пользователю для того, чтобы тот мог создать заявку в соответствующем пространстве по прямой ссылке.
Создание заявки
Для создания заявки необходимо иметь права Пользователя TeamStorm. Пользователи могут создавать заявки из раздела Заявки или по прямой ссылке.
Создание из раздела Заявки
- Нажмите Заявки в левой верхней части экрана.
- В открывшемся разделе Заявки нажмите на нужный тип заявки в списке. При необходимости воспользуйтесь полем поиска для того, чтобы найти тип.
- В открывшемся модальном окне введите описание заявки. Описание заявки будет отображено в блоке Описание той задачи, которая будет создана из заявки.
- Заполните атрибуты заявки (опционально). Атрибуты заявки будут соответствовать атрибутам той задачи, которая будет создана из заявки.
- Раскройте раздел Связанные задачи, затем нажмите + Связанная задача добавьте связанную задачу, не забыв установить тип связи и нажмите (опционально).
- Раскройте раздел Связанные страницы, затем нажмите + Связанная страница добавьте связанную страницу и нажмите (опционально).
- Раскройте раздел Вложения и добавьте файлы вложений (опционально). Файлы вложений будут приложены к той задаче, которая будет создана из заявки.
- Нажмите Отправить.
Из заявки будет создана задача в том простраснстве, в котором был создан соответствующий тип заявки.
На экране отобразится всплывающее сообщение вида Создана задача <идентификатор задачи> по заявке.
Пользователю, создавшему заявку, будет отправлено уведомление о создании задачи по заявке.
Создание заявки по ссылке
- Откройте отправленную вам другим пользователем ссылку на создание заявки.
- Следуйте указаниям из подраздела Создание из раздела Заявки.
Если тип заявки, для которого была создана ссылка, был удален или деактивирован, по ссылке откроется страница с сообщением 404 Такой страницы не существует
.
В этом случае обратитесь к пользователю, приславшему ссылку или администратору TeamStorm.
Переход к задаче, созданной из заявки
Откройте уведомления и нажмите на уведомление о создании нужной вам задачи или воспользуйтесь поиском на Главной странице.
Ended: Заявки
Скриптовая автоматизация ↵
Скриптовая автоматизация
TeamStorm позволяет автоматизировать рутинные действия при помощи скриптов.
Скрипт запускается и выполняет заложенные в нем операции автоматически при наступлении заранее заданного в правиле автоматизации события (триггера).
На каждый тип события можно создать несколько скриптов. Автоматизации по событию выполняются в порядке создания автоматизаций.
правила скриптовой автоматизации привязываются к определенному пространству или действуют для всех пространств в системе.
Создание правил скриптовой автоматизации доступно пользователям с ролью Администратор TeamStorm.
Подробнее о скриптах в подразделах:
Управление скриптами
Создание скрипта
- Войдите в TeamStorm под учетной записью с ролью Администратор TeamStorm.
- Откройте вкладку Автоматизация в верхней части экрана.
- Нажмите кнопку Учетная запись в правой верхней части экрана.
- Введите токен учетной записи, от имени которой будет выполняться автоматизация.
- Нажмите кнопку Скрипт в правой верхней части экрана.
- На открывшемся экране:
- введите название скрипта;
- выберите пространство, в котором будет выполняться скрипт.
- выберите тип события, при наступлении которого будет выполняться скрипт.
- Введите скрипт в консоли. Для вашего удобства вы можете выбрать светлую или темную тему консоли при помощи кнопки с изображением палитры справа над консолью.
- Нажмите Проверить справа над консолью. Убедитесь в том, что скрипт прошел проверку и на экране отобразилось уведомление об этом.
- Нажмите Создать.
Скрипт будет создан. Под созданным скриптом будет отображен журнал с результатами выполнения скрипта
Для просмотра списка созданных правил еще раз нажмите на вкладку Автоматизация в верхней части экрана.
Активация и деактивация скрипта
- Войдите в TeamStorm под учетной записью с ролью Администратор TeamStorm.
- Откройте вкладку Автоматизация в верхней части экрана.
- Найдите в таблице нужный скрипт и переведите переключатель в столбце Активен в активное или неактивное положение.
Удаление скрипта
- Войдите в TeamStorm под учетной записью с ролью Администратор TeamStorm.
- Откройте вкладку Автоматизация в верхней части экрана.
- Найдите в таблице нужный скрипт и нажмите кнопку удаления напротив нужного скрипта.
- В открывшемся модальном окне нажмите Да, я хочу удалить скрипт.
Скрипт будет удален вместе с относящимися к нему журналами.
Описание скриптовой автоматизации
Скрипт — это набор инструкций на C#, которые составляют тело скрытого внутреннего метода, затем компилируемого и выполняемого по триггерам.
Технически скрипты транслируются на внутренний промежуточный язык .NET - CIL.
Скрипты вызываются событиями в системе. На одно событие в рамках пространства может быть создано несколько автоматизаций.
Контекст событий
Каждое событие имеет свой контекст - набор данных, связанный с ним. Контексты для разных событий отличаются.
Контекст передаётся в память выполняющегося скрипта в виде типизированного объекта. Доступ к контексту осуществляется через переменную e
.
Контекст создания задачи
Когда триггером автоматизации является событие Создание задачи, передаются следующие данные события:
public class WorkitemCreatedEventContext : BaseWorkitemEventContext
{
public Guid WorkitemId { get; init; } // Идентификатор созданной задачи
public string WorkitemKey { get; init; } // Ключ созданной задачи
public string WorkitemName { get; init; } // Название созданной задачи
public required string? WorkitemDescription { get; set; } // Описание созданной задачи
public Guid? WorkitemAssigneeId { get; init; } // Идентификатор ответсвенного на задаче
public Guid WorkitemTypeId { get; init; } // Идентификатор типа задачи
public required DateTime WorkitemCreationDate { get; set; } // Дата создания задачи
public required Guid? WorkitemWorkflowId { get; init; } // Идентификатор рабочего процесса задачи
public Guid? TenantId { get; init; } // Идентификатор тенанта
public Guid EventId { get; init; } // Идентификатор события
public EventTypes EventType { get; init; } // Тип события
public string EventName { get; init; } // Название события
public Guid UserId { get; init; } // Идентификатор пользователя, инициировавшего событие
public Guid WorkspaceId { get; init; } // Идентификатор пространства, в котором произошло событие
public string WorkspaceKey { get; init; } // Ключ пространства, в котором произошло событие
}
Контекст событий изменения задачи
Событиями изменения задачи являются:
- Изменение родительской задачи или папки;
- Изменение типа задачи;
- Изменение процесса;
- Изменение статуса;
- Изменение имени;
- Изменение описания;
- Изменение ответственного;
- Изменение даты начала;
- Изменение даты выполнения;
- Изменение оценки в часах;
- Изменение оценки в сторипоинтах;
- Изменение спринта;
- Изменение значения прогресса;
- Изменение пользовательского атрибута.
Для этих событий передаются следующие данные контекста:
public class WorkitemUpdatedEventContext : BaseWorkitemEventContext
{
public object? OldValue { get; init; } // Значение параметра до изменения
public object? NewValue { get; init; } // Значение параметра после изменения
public Guid WorkitemId { get; init; } // Идентификатор задачи
public string WorkitemKey { get; init; } // Ключ задачи
public string WorkitemName { get; init; } // Название задачи
public required string? WorkitemDescription { get; set; } // Описание задачи
public Guid? WorkitemAssigneeId { get; init; } // Идентификатор ответственного на задаче
public Guid WorkitemTypeId { get; init; } // Идентификатор типа задачи
public required DateTime WorkitemCreationDate { get; set; } // Дата создания задачи
public required Guid? WorkitemWorkflowId { get; init; } // Идентификатор рабочего процесса задачи
public Guid WorkitemParentId { get; init; } // Идентификатор родительского элемента (задачи или папки)
public Guid? WorkitemStatusId { get; init; } // Идентификатор статуса
public Guid WorkitemCreatedBy { get; set; } // Идентификатор пользователя, который создал задачу
public Guid WorkitemUpdatedBy { get; set; } // Идентификатор пользователя, который последний изменил задачу
public DateTime WorkitemUpdateDate { get; set; } // Дата изменения задачи
public DateTime? WorkitemDueDate { get; set; } // Дата выполнения
public DateTime? WorkitemEndDate { get; set; } // Дата завершения
public DateTime? WorkitemStartDate { get; set; } // Дата начала
public Dictionary<Guid, object?> WorkitemAttributesValues { get; set; } = new(); // Значения пользовательских атрибутов
public OkrProgressType? WorkitemProgressType { get; set; }
public string? WorkitemProgressData { get; set; }
public int? WorkitemProgressValue { get; set; }
public int? WorkitemEstimatedTime { get; set; } // Оценка в часах
public int? WorkitemSpentTime { get; set; } // Сумма затраченного времени
public int? WorkitemLeftTime { get; set; } // Оставшееся время
public int? WorkitemEstimatedStoryPoints { get; set; } // Оценка в сторипоинтах
public Guid? TenantId { get; init; } // Идентификатор тенанта
public Guid EventId { get; init; } // Идентификатор события
public EventTypes EventType { get; init; } // Тип события
public string EventName { get; init; } // Название события
public Guid UserId { get; init; } // Идентификатор пользователя, инициировавшего событие
public Guid WorkspaceId { get; init; } // Идентификатор пространства, в котором произошло событие
public string WorkspaceKey { get; init; } // Ключ пространства, в котором произошло событие
}
Соответствие типа объекта в полях NewValue
и OldValue
в зависимости от типа события приведено в таблице:
Событие | Тип объекта | Описание объекта |
---|---|---|
Изменение родительской задачи или папки | Guid |
Идентификатор задачи или папки |
Изменение типа задачи | Guid? |
Идентификатор типа |
Изменение процесса | Guid? |
Идентификатор процесса |
Изменение статуса | Guid |
Идентификатор статуса |
Изменение имени | string |
Название задачи |
Изменение описания | string |
Описание задачи |
Изменение ответственного | Guid? |
Идентификатор ответственного |
Изменение даты начала | DateTime? |
Дата начала |
Изменение даты выполнения | DateTime? |
Дата выполнения |
Изменение оценки в часах | int? |
Оценка в секундах |
Изменение оценки в сторипоинтах | int? |
Оценка в сторипоинтах |
Изменение спринта | Guid? |
Идентификатор спринта |
Изменение значения прогресса | int? |
Значение прогресса в % |
Изменение пользовательского атрибута "Число" | int? |
Числовое значение атрибута |
Изменение пользовательского атрибута "Строка" | int? |
Строковое значение атрибута |
Изменение пользовательского атрибута "Выбор из списка" | string? |
Значение опции атрибута |
Изменение пользовательского атрибута "Тег" | string? |
Значение опции атрибута |
Изменение пользовательского атрибута "Пользователь" | Guid? |
Идентификатор пользователя |
Изменение пользовательского атрибута "Дата" | DateTime? |
Значение даты атрибута |
Изменение пользовательского атрибута "Время" | int? |
Значение времени в секундах |
Контекст создания списания
Когда триггером автоматизации является событие *Добавление списания времени", передаются следующие данные события:
public class TimeTrackingCreatedEventContext : EventContext
{
public Guid WorkitemId { get; set; } // Идентификатор задачи по которой добавлено списание
public Guid EntryId { get; set; } // Идентификатор списания
public DateTime CreationDate { get; set; } // Дата добавления списания
public DateTime StartDate { get; set; } // Дата списания
public int Duration { get; set; } // Время списания в секундах
public string? Description { get; set; } // Описание списания
public Guid? TenantId { get; init; } // Идентификатор тенанта
public Guid EventId { get; init; } // Идентификатор события
public EventTypes EventType { get; init; } // Тип события
public string EventName { get; init; } // Название события
public Guid UserId { get; init; } // Идентификатор пользователя, инициировавшего событие
public Guid WorkspaceId { get; init; } // Идентификатор пространства, в котором произошло событие
public string WorkspaceKey { get; init; } // Ключ пространства, в котором произошло событие
}
Контекст изменения списания
Когда триггером автоматизации является событие "Редактирование списания времени" передаются следующие данные события:
public class TimeTrackingUpdatedEventContext : EventContext
{
public Guid WorkitemId { get; set; } // Идентификатор задачи по которой добавлено списание
public Guid EntryId { get; set; } // Идентификатор списания
public DateTime CreationDate { get; set; } // Дата добавления списания
public DateTime StartDate { get; set; } // Дата списания
public int Duration { get; set; } // Время списания в секундах
public string? Description { get; set; } // Описание списания
public Guid? TenantId { get; init; } // Идентификатор тенанта
public Guid EventId { get; init; } // Идентификатор события
public EventTypes EventType { get; init; } // Тип события
public string EventName { get; init; } // Название события
public Guid UserId { get; init; } // Идентификатор пользователя, инициировавшего событие
public Guid WorkspaceId { get; init; } // Идентификатор пространства, в котором произошло событие
public string WorkspaceKey { get; init; } // Ключ пространства, в котором произошло событие
}
Контекст добавления задачи в элемент портфеля
Когда триггером автоматизации является событие Добавление задачи в элемент портфеля, передаются следующие данные события:
public class WorkitemAddedToPortfolioElementEventContext : EventContext
{
public Guid WorkitemId { get; set; } // Идентификатор задачи, добавленной в элемент портфеля
public Guid PortfolioElementId { get; set; } // Идентификатор элемента портфеля
public string PortfolioElementName { get; set; } = default!; // Название элемента портфеля
public Guid? PortfolioElementStatusId { get; set; } // Идентификатор статуса элемента портфеля
public Guid? TenantId { get; init; } // Идентификатор тенанта
public Guid EventId { get; init; } // Идентификатор события
public EventTypes EventType { get; init; } // Тип события
public string EventName { get; init; } // Название события
public Guid UserId { get; init; } // Идентификатор пользователя, инициировавшего событие
public Guid WorkspaceId { get; init; } // Идентификатор пространства, в котором произошло событие
public string WorkspaceKey { get; init; } // Ключ пространства, в котором произошло событие
}
Контекст удаления задачи из элемента портфеля
Когда триггером автоматизации является событие Удаление задачи из элемента портфеля передаются следующие данные события:
public class WorkitemDeletedFromPortfolioElementEventContext : EventContext
{
public Guid WorkitemId { get; set; } // Идентификатор задачи, добавленной в элемент портфеля
public Guid PortfolioElementId { get; set; } // Идентификатор элемента портфеля
public string PortfolioElementName { get; set; } = default!; // Название элемента портфеля
public Guid? PortfolioElementStatusId { get; set; } // Идентификатор статуса элемента портфеля
public Guid? TenantId { get; init; } // Идентификатор тенанта
public Guid EventId { get; init; } // Идентификатор события
public EventTypes EventType { get; init; } // Тип события
public string EventName { get; init; } // Название события
public Guid UserId { get; init; } // Идентификатор пользователя, инициировавшего событие
public Guid WorkspaceId { get; init; } // Идентификатор пространства, в котором произошло событие
public string WorkspaceKey { get; init; } // Ключ пространства, в котором произошло событие
}
Контекст создания спринта
Когда триггером автоматизации является событие Создание спринта, передаются следующие данные события:
public class SprintCreatedEventContext : EventContext
{
public Guid ExtensionId { get; set; } // Идентификатор расширения Agile
public Guid SprintId { get; set; } // Идентификатор спринта
public string SprintName { get; set; } // Название спринта
public SprintStatus SprintStatus { get; set; } // Статус спринта
public Guid? TenantId { get; init; } // Идентификатор тенанта
public Guid EventId { get; init; } // Идентификатор события
public EventTypes EventType { get; init; } // Тип события
public string EventName { get; init; } // Название события
public Guid UserId { get; init; } // Идентификатор пользователя, инициировавшего событие
public Guid WorkspaceId { get; init; } // Идентификатор пространства, в котором произошло событие
public string WorkspaceKey { get; init; } // Ключ пространства, в котором произошло событие
}
Контекст изменения статуса спринта
Когда триггером автоматизации является событие Изменение статуса спринта, передаются следующие данные события:
public class SprintUpdatedEventContext : EventContext
{
public Guid ExtensionId { get; set; } // Идентификатор расширения Agile
public Guid SprintId { get; set; } // Идентификатор спринта
public string SprintName { get; set; } // Название спринта
public SprintStatus SprintStatus { get; set; } // Статус спринта
public Guid? TenantId { get; init; } // Идентификатор тенанта
public Guid EventId { get; init; } // Идентификатор события
public EventTypes EventType { get; init; } // Тип события
public string EventName { get; init; } // Название события
public Guid UserId { get; init; } // Идентификатор пользователя, инициировавшего событие
public Guid WorkspaceId { get; init; } // Идентификатор пространства, в котором произошло событие
public string WorkspaceKey { get; init; } // Ключ пространства, в котором произошло событие
}
Методы Script API
Метод, в котором выполняется пользовательский код, технически находится в классе, наследуемом от базового класса,
имеющим веб-клиент CwmPublicAPI
и набор методов.
Примеры использования функций приведены в подразделе Примеры.
Сигнатуры методов
Сигнатуры методов имеют своими аргументами идентификаторы или имена/ключи задач, пространств, папок и т.д., там где это применимо, но они, как правило, необязательные. Если что-либо пропущено, то подразумевается текущее пространство, текущая задача и т.п., а для удобства использования они перечислены в порядке возрастания иерархии:
GetWorkitem(string? workitemKey = null, string? workspaceKey = null);
Методы работы с пространствами
Task<List<WorkspaceModel>?> GetWorkspaces()
Task<WorkspaceModel?> GetWorkspace(Guid workspaceId)
Task<WorkspaceModel?> GetWorkspace(string workspaceKey = null)
Task<WorkspaceModel> CreateWorkspace(string name, string key, string? description = null)
Task<WorkspaceModel> UpdateWorkspaceName(string name, string? workspaceKey = null)
Task DeleteWorkspace(string? workspaceKey = null)
Методы работы с ролями
Task<List<RoleModel>?> GetRoles(string? workspaceKey = null)
Task<List<RoleModel>?> GetRoles(bool? isSystem, string? workspaceKey = null)
Task<RoleModel?> GetRole(Guid roleId, string? workspaceKey = null)
Task<RoleModel?> GetRole(string role, string? workspaceKey = null)
Task<RoleModel> CreateRole(string name, List<Permission?>? permissions, string? workspaceKey = null)
Task<RoleModel> UpdateRolePermissions(Guid roleId, List<Permission?>? permissions = null, string? workspaceKey = null)
Методы работы с пользователями
Task<List<UserModel>?> GetUsers()
Task<UserModel?> GetUser(Guid userId)
Task<UserModel?> GetUser(string userName)
Task<List<UserModel>?> GetUsersByRole(Guid roleId, string? workspaceKey = null)
Task AddUserRole(Guid userId, Guid roleId, string? workspaceKey = null)
Task DeleteUserRole(Guid userId, Guid roleId, string? workspaceKey = null)
Методы работы с группами
Task<List<GroupModel>?> GetUsersGroups()
Task<GroupModel?> GetUserGroup(Guid userGroupId)
Task<List<GroupModel>?> GetUsersGroups(string userName)
Task DeleteGroupRole(Guid groupId, Guid roleId, string? workspaceKey = null)
Методы работы с папками
Task<List<FolderModel>?> GetFolders(string? workspaceKey = null)
Task<List<FolderModel>?> GetFolderByParent(Guid parentId, string? workspaceKey = null)
Task<FolderModel?> GetFolder(Guid folderId, string? workspaceKey = null)
Task<FolderModel?> GetFolder(string name, string? workspaceKey = null)
Task<FolderModel> CreateFolder(string name, Guid? parentId = null, string? workspaceKey = null)
Task<FolderModel?> UpdateFolder(PatchFolderRequestBody body, Guid folderId, string? workspaceKey = null) // общего вида - сразу все свойства скопом
Task<WorkitemModel> UpdateFolderName(string name, Guid folderId, string? workspaceKey = null)
Task DeleteFolder(Guid folderId, string? workspaceKey = null)
Методы работы с типами
Task<List<TypeModel>?> GetTypes(string? workspaceKey = null)
Task<TypeModel?> GetType(Guid typeId, string? workspaceKey = null)
Task<TypeModel?> GetType(string typeName, string? workspaceKey = null)
Task<TypeModel> CreateType(CreateTypeRequestBody body, string? workspaceKey = null)
Task DeleteType(Guid typeId, string? workspaceKey = null)
Task DeleteType(string? type, string? workspaceKey = null)
Методы работы со статусами
Task<List<StatusCategoryModel>?> GetStatusCategories()
Task<List<StatusModel>?> GetStatuses(string? workspaceKey = null)
Task<StatusModel?> GetStatus(Guid statusId, string? workspaceKey = null)
Task<StatusModel?> GetStatus(string name, string? workspaceKey = null)
Task<StatusModel> CreateStatus(CreateStatusRequestBody body, string? workspaceKey = null)
Методы работы с атрибутами типов
Task<List<AttributeModel>?> GetAttributes(string? workspaceKey = null)
Task<AttributeModel?> GetAttribute(Guid attributeId, string? workspaceKey = null)
Task<AttributeModel?> GetAttribute(string attributeName, string? workspaceKey = null)
Task<AttributeModel> CreateNumberAttribute(string name, string? description, string? workspaceKey = null)
Task<AttributeModel> CreateUniStringAttribute(string name, string? description = null, string? workspaceKey = null)
Task<AttributeModel> CreateUserAttribute(string name, string? description = null, string? workspaceKey = null)
Task<AttributeModel> CreateDateAttribute(string name, string? description = null, string? workspaceKey = null)
Task<AttributeModel> CreateTimeAttribute( string name, string? description = null, string? workspaceKey = null)
Task<AttributeModel> CreateUniSelectAttribute(string name, IEnumerable<string> listOptions, string? description = null, string? workspaceKey = null)
Task<AttributeModel> CreateTagAttribute(string name, LIEnumerablest<string> listOptions, string? description = null, string? workspaceKey = null)
Task<AttributeModel> UpdateWorkitemAttribute(Guid attributeId, PatchAttributeRequestBody body, string? workspaceKey = null)
Task<AttributeModel> UpdateScalarWorkitemAttribute(Guid attributeId, string name, string? description = null, string? workspaceKey = null) // Все скалярные
Task<AttributeModel> UpdateListWorkitemAttribute(Guid attributeId, string name, List<PatchAttributeOptionModel> listOptions, string? description = null, string? workspaceKey = null) // UniSelect & Tag
Task DeleteAttribute(Guid attributeId, string? workspaceKey = null)
Методы работы с задачами
Task<List<WorkitemModel>?> GetWorkitems(string? workspaceKey = null)
Task<WorkitemModel?> GetWorkitem(Guid workitemId, string? workspaceKey = null)
Task<WorkitemModel?> GetWorkitem(string? workitemKey = null, string? workspaceKey = null)
Task<List<WorkitemModel>?> GetWorkitemByParent(bool withSubitems = false, string? parentKey = null, string? workspaceKey = null) // планарный список для иерархии потомков (withSubitems = true)
Task<WorkitemModelTree?> GetWorkitemTree(Guid? parentId = null, string? workspaceKey = null) // потомки в виде иерархического дерева, WorkitemModelTree - собственный тип ScriptAPI (https://git.testit.ru/teamstorm/teamstorm/-/blob/feature/ib/TS-8917-scripts-child-tasks/src/backend/dotnet/AutomationService.ScriptGate/Contracts/Tree.cs?ref_type=heads)
Task<WorkitemModel> CreateWorkitem(CreateWorkitemRequestBody body, string? workspaceKey = null)
Task<WorkitemModel?> UpdateWorkitem(PatchWorkitemRequestBody body, string? workitemKey = null, string? workspaceKey = null) // общего вида
Task<WorkitemModel> UpdateWorkitemParent(Guid? parentId, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemStatus(string status, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemType(string typeName, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemName(string name, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemDescription(string desc, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemAssignee(Guid userId, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemAssignee(string? userName, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemStartDate(DateTime? startDate, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemDueDate(DateTime? dueDate, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemSprint(Guid? sprintId, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemStoryPoints(int? points, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemOriginalEstimate(int? estimate, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemWorkflow(Guid? workflowId, string? workitemKey = null, string? workspaceKey = null)
Task<WorkitemModel> UpdateWorkitemPortfolioElement(List<Guid?>? elementIds, string? workitemKey = null, string? workspaceKey = null)
Task DeleteWorkitem(string? workitemKey = null, string? workspaceKey = null)
Методы работы со значениями атрибутов
Атрибуты с типом Число
Task<NumberFieldValueModel?> GetNumberAttributeValue(Guid attributeId, string? workitemKey = null, string? workspaceKey = null)
Task<NumberFieldValueModel?> GetNumberAttributeValue(string attributeName, string? workitemKey = null, string? workspaceKey = null)
Task<NumberFieldValueModel?> UpdateNumberAttributeValue(string attributeName, double? value, string? workitemKey = null, string? workspaceKey = null)
Task<NumberFieldValueModel?> UpdateNumberAttributeValue(Guid attributeId, double? value, string? workitemKey = null, string? workspaceKey = null)
Атрибуты с типом Строка
Task<UniStringFieldValueModel?> GetUniStringAttributeValue(Guid attributeId, string? workitemKey = null, string? workspaceKey = null)
Task<UniStringFieldValueModel?> GetUniStringAttributeValue(string attributeName, string? workitemKey = null, string? workspaceKey = null)
Task<UniStringFieldValueModel?> UpdateUniStringAttributeValue(string attributeName, string value, string? workitemKey = null, string? workspaceKey = null)
Task<UniStringFieldValueModel?> UpdateUniStringAttributeValue(Guid attributeId, string value, string? workitemKey = null, string? workspaceKey = null)
Атрибуты с типом Выбор из списка
Task<UniSelectFieldValueModel?> GetUniSelectAttributeValue(Guid attributeId, string? workitemKey = null, string? workspaceKey = null)
Task<UniSelectFieldValueModel?> GetUniSelectAttributeValue(string attributeName, string? workitemKey = null, string? workspaceKey = null)
Task<UniSelectFieldValueModel?> UpdateUniSelectAttributeValue(string attributeName, string option, string? workitemKey = null, string? workspaceKey = null)
Task<UniSelectFieldValueModel?> UpdateUniSelectAttributeValue(Guid attributeId, string option, string? workitemKey = null, string? workspaceKey = null)
Атрибуты с типом Тег
Task<TagFieldValueModel?> GetTagAttributeValue(Guid attributeId, string? workitemKey = null, string? workspaceKey = null)
Task<TagFieldValueModel?> GetTagAttributeValue(string attributeName, string? workitemKey = null, string? workspaceKey = null)
Task<TagFieldValueModel?> UpdateTagAttributeValue(string attributeName, List<string> options, string? workitemKey = null, string? workspaceKey = null)
Task<TagFieldValueModel?> UpdateTagAttributeValue(Guid attributeId, List<string> options, string? workitemKey = null, string? workspaceKey = null)
Атрибуты с типом Дата
Task<DateFieldValueModel?> GetDateAttributeValue(Guid attributeId, string? workitemKey = null, string? workspaceKey = null)
Task<DateFieldValueModel?> GetDateAttributeValue(string attributeName, string? workitemKey = null, string? workspaceKey = null)
Task<DateFieldValueModel?> UpdateDateAttributeValue(string attributeName, DateTime? value, string? workitemKey = null, string? workspaceKey = null)
Task<DateFieldValueModel?> UpdateDateAttributeValue(Guid attributeId, DateTime? value, string? workitemKey = null, string? workspaceKey = null)
Атрибуты с типом Пользователь
Task<UserFieldValueModel?> GetUserAttributeValue(Guid attributeId, string? workitemKey = null, string? workspaceKey = null)
Task<UserFieldValueModel?> GetUserAttributeValue(string attributeName, string? workitemKey = null, string? workspaceKey = null)
Task<UserFieldValueModel?> UpdateUserAttributeValue(string attributeName, Guid userId, string? workitemKey = null, string? workspaceKey = null)
Task<UserFieldValueModel?> UpdateUserAttributeValue(Guid attributeId, Guid userId, string? workitemKey = null, string? workspaceKey = null)
Атрибуты с типом Время
Task<TimeFieldValueModel?> GetTimeAttributeValue(Guid attributeId, string? workitemKey = null, string? workspaceKey = null)
Task<TimeFieldValueModel?> GetTimeAttributeValue(string attributeName, string? workitemKey = null, string? workspaceKey = null)
Task<TimeFieldValueModel?> UpdateTimeAttributeValue(string attributeName, int? seconds, string? workitemKey = null, string? workspaceKey = null)
Task<TimeFieldValueModel?> UpdateTimeAttributeValue(Guid attributeId, int? seconds, string? workitemKey = null, string? workspaceKey = null)
Методы работы с комментариями
Task<List<CommentModel>?> GetWorkitemComments(string? workitemKey = null, string? workspaceKey = null)
Task<CommentModel> CreateWorkitemComment(string text, string? workitemKey = null, string? workspaceKey = null)
Методы работы с вложениями
Task<List<AttachmentModel>?> GetWorkitemAttachments(string? workitemKey = null, string? workspaceKey = null)
Task<AttachmentModel?> GetWorkitemAttachment(Guid attachmentId, string? workitemKey = null, string? workspaceKey = null)
Task DeleteAttachment(Guid attachmentId, string? workitemKey = null, string? workspaceKey = null)
Методы работы с портфелями
Task<List<PortfolioModel>?> GetPortfolios(string? workspaceKey = null)
Task<List<PortfolioModel>?> GetPortfoliosInFolder(Guid folderId, string? workspaceKey = null)
Task<PortfolioModel?> GetPortfolio(Guid portfolioId, string? workspaceKey = null)
Task<PortfolioModel?> GetPortfolio(string name, string? workspaceKey = null)
Task<PortfolioModel> CreatePortfolio(string name, Guid folderId, string? workspaceKey = null)
Task<PortfolioModel> UpdatePortfolio(Guid portfolioId, string name, string? workspaceKey = null)
Task DeletePortfolio(Guid portfolioId, string? workspaceKey = null)
Работа с элементами портфеля
Task<List<PortfolioElementModel>?> GetPortfolioElements(string? workspaceKey = null)
Task<List<PortfolioElementModel>?> GetPortfolioElementsInFolder(Guid folderId, string? workspaceKey = null)
Task<List<PortfolioElementModel>?> GetPortfolioElementsForStatus(string status, string? workspaceKey = null)
Task<List<PortfolioElementModel>?> GetPortfolioElements(Guid portfolioId, string? workspaceKey = null)
Task<PortfolioElementModel?> GetPortfolioElement(Guid elementId, string? workspaceKey = null)
Task<PortfolioElementModel?> GetPortfolioElement(string elementName, string? workspaceKey = null)
Task<PortfolioElementModel> CreatePortfolioElement(CreatePortfolioElementRequestBody body, string? workspaceKey = null)
Task<PortfolioElementModel> UpdatePortfolioElement(PortfolioElementModel body, string? workspaceKey = null)
Task DeletePortfolioElement(Guid elementId, string? workspaceKey = null)
Получение задач в элементе портфеля
Task<List<WorkitemModel>?> GetWorkitemsByPortfolioElement(Guid elementId, string? workspaceKey = null)
Методы работы с Agile
Task<List<AgileModel>?> GetAgileExtensions(string? workspaceKey = null)
Task<AgileModel?> GetAgileExtension(Guid agileExtensionId, string? workspaceKey = null)
Task<AgileModel> CreateAgile(CreateAgileRequestBody body, string? workspaceKey = null)
Task DeleteAgile(Guid agileExtensionId, string? workspaceKey = null)
Работа со спринтами
Task<List<SprintModel>?> GetSprints(string? workspaceKey = null)
Task<SprintModel?> GetSprint(Guid sprintId, string? workspaceKey = null)
Task<SprintModel?> GetSprint(string name, string? workspaceKey = null)
Task<SprintModel> CreateSprint(CreateSprintRequestBody body, string? workspaceKey = null)
Task DeleteSprint(Guid sprintId, string? workspaceKey = null)
Методы работы со списаниями
Task<List<TimeTrackingEntryModel>?> GetTimeTrackingEntries(DateTime? startDate = null, DateTime? endDate = null,
List<string>? users = null, int? maxItemsCount = 50, string? fromToken = null)
Методы работы со связями
Методы для отправки HTTP-запросов
Task<string> SendHttpRequest(string url, HttpRequest request) // аргумент request содержит в себе все возможные свойства, передаваемые в следующей функции напрямую
Task<string> SendHttpRequest(string url, HttpMethod method = HttpMethod.Get, object? body = null,
List<(string Name, string Value)>? headers = null, string mediaType = "application/json",
IReadOnlyDictionary<string, object?>? options = null)
Примеры
Примечание
Для всех функций ScriptAPI (доступ к PublicAPI и логирование) необходимо указывать впереди ключевое слово await, так как они асинхронные.
Синтаксис языка — C11, поэтому инициализация коллекций происходит следующим образом: List<int> list = new { 1, 2 }, а не List<int> list = [ 1, 2 ]
.
Простейший пример скрипта, который даже не использует PublicAPI:
debug("USER = " + e.UserId);
Примечание
Если тело скрипта передается в запросе напрямую (на странице Swagger или утилите типа Postman), все внутренние двойные кавычки свойства, передаваемого JSON, необходимо экранировать:
{
Name: "Script1",
ScriptType: "Method",
EventType: "WorkitemNameChanged",
Script: "debug(\"USER = \" + e.UserId);", // вот тут в тексте самого скрипта - экранирование кавычек
}
Пример создания папки со случайным именем
var r = new Random();
var newName = $"name{r.Next(0, 1000)}";
await CreateFolder(newName); // вот тут должно быть await
debug("New name = " + newName);
Примеры создания скриптов
// Сравнение с текущим событием можно будет делать как по его Id, так и по его имени (enum лучше)
// Кейс 1: e.EventId == Events.WorkitemCreated (Events - класс с полями в виде именованных guid + некоторые вспомогательные функции)
// Кейс 2: e.EventType == EventTypes.WorkitemCreated (EventTypes - enum)
// Events также имеет статический словарь '<Guid, EventTypes> Map' - Id и enum события для системных полей
// Имена обсуждаемы
// Сценарий: автозаполнение исполнителя в зависимости от типа запроса
var wiType = await GetType(e.WorkitemTypeId);
if (e.EventType == EventTypes.WorkitemCreated && wiType.Name == "Bug") {
// UserModel? assignee = await GetUser("ivan.ivanov"); // в данном случае получение модели излишне
WorkitemModel? workitem = await UpdateWorkitemAssignee("ivan.ivanov");
}
// Сценарий: по умолчанию проставление среднего приоритета при регистрации запроса
var wiType = await GetType(e.WorkitemTypeId);
if (e.EventId == EventTypes.WorkitemCreated && wiType.Name == "Bug") {
// если уже имеется Id атрибута, лучше использовать функцию, принимающую именно его, а не имя (производительность)
await UpdateUniSelectAttributeValue("Приоритет", "Средний"); // текущий воркайтем
//await SetUniSelectAttributeValue(attributeId, "Средний", workitemId2); // сторонний воркайтем, но текущего воркспейса
//await SetUniSelectAttributeValue(attributeId, "Средний", workitemId2, workspaceId2); // воркайтем в стороннем воркспейсе
}
// Сценарий: проставление команды в зависимости от исполнителя
var user = await GetUser(e.WorkitemAssigneeId);
// 'WorkitemChanged' нет - все события на изменение гранулярные
if (e.EventType == EventTypes.WorkitemNameChanged && user.Username == "ivan.ivanov") {
await UpdateUniSelectAttributeValue("Команда", "Alfa");
}
// Сценарий: Автоматическое назначение на задачу определенной проектной роли. Как следствие назначается пользователь, у которого установлена такая проектная роль.
List<UserModel> users = await GetUsersByRole(roleId); // можно так (все функции планарно на одном уровне, но функции могут быть длиннее по имени - с префиксом сущности)
// List<UserModel> users = await WorkspaceUsers.FindByRole(role); // а можно эдак (в АПИ организовать отдельные 'свойства доступа': для текущего воркайтема, общего доступа в воркспейсам, юзерам и т.д.)
// Сценарий: Автоматическое присвоение типа документа по вхождению определенного текста в название документа.
// Сценарий: Создание задачи с автоматическим определением типа на базе локации пользователя, то есть где пользователь инициировал создание задачи. Чаще всего применимо к спискам (портфелям).
WorkitemModel wi = await UpdateWorkitemType("SomeType"); // текущему воркайтему
// Сценарий: Расчет и заполнение атрибута в зависимости от значений других атрибутов текущей задачи. Например, автоматическое присваивание задаче портфеля, если она является определенного типа.
PortfolioElementModel? elem1 = await GetPortfolioElement(elementId);
PortfolioElementModel? elem1 = await GetPortfolioElement("Element1"); // или по elementName
// PorfolioElementModel? elem1 = await PorfolioElements.FindByName(name); // либо так
elem1.StartDate = DateTimeOffset.UtcNow.AddDays(10).Date; // изменить сам элемент
await UpdatePortfolioElement(elem1);
await UpdateWorkitemPortfolioElements(elementIds); // привязка к воркайтему списка элементов портфеля - по guid
// Сценарий: Установить ответственного при определённых значениях
var priorityValue = await GetUniSelectAttributeValue(priorityAttributeName);
var tagValue = await GetTagAttributeValue(tagAttributeName); // текущий воркайтем
if (priorityValue.Value.Name == "Высокий" && tagValue.Value.Any(a => a.Name == "UX")) {
await UpdateWorkitemAssignee(userId); // текущему воркайтему!
}
// Автоматически рассчитать стоимость задачи и записать результат в атрибут "Общая стоимость", перемножив значения атрибутов "Оценка в часах" и "Стоимость часа".
NumberFieldValueModel attr1 = await GetNumberAttributeValue("Оценка в часах");
NumberFieldValueModel attr2 = await GetNumberAttributeValue("Стоимость часа");
if(attr1.Value != null && attr2.Value != null)
{
var val3 = attr1.Value * attr2.Value;
await UpdateNumberAttributeValue("Общая стоимость", val3);
}
// Автоматически рассчитать сумму атрибутов “Оценка” во всех дочерних задачах и заполнить рассчитанным значением атрибута “Оценка“ в родительской задаче.
var tree = await GetWorkitemTree();
List<WorkitemModel> sons = tree.GetChildren();
var result = 0.0;
foreach (var son in sons)
{
var attribute = son.Attributes.Single(a => a.NumberFieldValueModel.Name == "Оценка");
result += attribute.NumberFieldValueModel.Value ?? 0;
}
await UpdateNumberAttributeValue("Оценка", result);
HTTP-client
В ScriptAPI реализован HTTP-клиент для того, чтобы можно было автоматизировать интеграцию с внешними системами.
Для управления HTTP-запросами реализована следующие функции-обертки:
// метод, позволяющий получать HTTP-доступ ко внешним Интернет-ресурсам (его безопасность управляется настройкам переменных окружения, см. соответствующий раздел):
Task<string> SendHttpRequest(string url, HttpRequest request) // аргумент request содержит в себе все возможные свойства, передаваемые в следующей функции напрямую
Task<string> SendHttpRequest(string url, HttpMethod method = HttpMethod.Get, object? body = null,
List<(string Name, string Value)>? headers = null, string mediaType = "application/json",
IReadOnlyDictionary<string, object?>? options = null)
Ended: Скриптовая автоматизация
Профиль пользователя ↵
Профиль пользователя
После входа в систему вы можете перейти в профиль пользователя. В профиле можно:
Переход в профиль пользователя
- Нажмите значок пользователя в правом верхнем углу экрана.
- Выберите Профиль.
После входа будет открыт экран настроек профиля.
Настройки профиля
Установка аватара
Загрузка аватара
- В блоке Фото наведите курсор на существующий аватар или значок пользователя.
- Нажмите отобразившуюся кнопку Загрузить аватар.
- В открывшемся системном окне перейдите в расположение на вашем устройстве, где хранятся изображения и выберите нужный файл с изображением.
- Нажмите Открыть.
Аватар будет загружен и отображен в блоке Фото.
Установка случайного аватара
- В блоке Фото наведите курсор на существующий аватар или значок пользователя.
- Нажмите отобразившуюся кнопку Случайный аватар.
- В открывшемся модальном окне Выбрать случайный аватар нажмите ОК.
Аватар будет выбран случайным образом из системного набора и отображен в блоке Фото.
Удаление аватара
- В блоке Фото наведите курсор на существующий аватар или значок пользователя.
- Нажмите отобразившуюся кнопку Удалить аватар.
- В открывшемся модальном окне нажмите Да, я хочу удалить аватар.
Аватар будет удален.
Изменение персональных данных
- В блоке Персональные данные измените данные в поле Имя пользователя.
- Нажмите Сохранить.
Примечание
Изменение имени пользователя может быть заблокировано для пользователей, которые входят с помощью LDAP или OpenID Connect.
Настройка интерфейса
- Перейдите в профиль пользователя.
- Нажмите Интерфейс на панели слева.
- Выберите язык интерфейса из выпадающего списка в поле Язык.
- Нажмите Сохранить.
Создание токена
- Перейдите в профиль пользователя.
- Нажмите Безопасность на панели слева.
- Нажмите Сгенерировать.
В поле API токен отобразится сгенерированный токен. Его можно скопировать при помощи горячих клавиш, выделив непосредственно в поле, или нажав кнопку Копировать в правой части поля.
Ended: Профиль пользователя
Пространства ↵
Работа с пространствами
Работа в TeamStorm разделена на пространства, которые служат для разграничения работ, относящихся к различным мало связанным между собой функциям или подразделениям в организации.
Принципы выделения пространств принимаются на уровне организации.
Владелец пространства (пользователь, создавший пространство) может предоставлять доступ к данному пространству другим пользователям.
Работа с пространствами описана в подразделах:
Роли доступа к пространству ↵
Роли доступа к пространству
В каждом пространстве Системы реализована ролевая модель доступа с встроенными ролями:
-
Администратор пространства со следующими правами по управлению пространством:
- редактирование имени и описания пространства;
- управление доступами;
- управление интеграциями;
- удаление пространства;
- управление типами;
- управление атрибутами;
- управление процессами:
-
Пользователь пространства со следующими правами на просмотр и редактирование контента пространства:
- работа с папками;
- работа с представлениями;
- работа с задачами;
- работа с расширениями;
- выгрузка данных;
-
Гость пространства с правами только на просмотр контента.
Примечание
Администратор пространства по умолчанию также обладает всеми правами пользователя иправами на просмотр контента пространства
Работа с ролями доступа к пространству описана в подразделах:
- Добавление и настройка роли
- Редактирование роли
- Удаление роли
- Назначение роли пользователю или группе пользователей
Добавление пользователей и групп описано в разделе Добавление и удаление пользователей и групп пользователей в пространстве
Добавление и настройка роли
Помимо встроенных ролей доступа, администратор пространства может создавать и настраивать дополнительные роли.
Для добавления новой роли:
- Перейдите в настройки пространства;
- В панели слева выберите Роли доступа.
- Нажмите Добавить роль. Откроется панель настройки роли.
- Для быстрой настройки роли скопируйте настройки из другой роли, выбрав ее из списка (опционально).
- Введите название роли и настройте права доступа при помощи отметки тех или иных прав в чекбоксах, сгруппированных по функциям.
- Нажмите Добавить.
Редактирование роли
Для редактирования роли:
- Перейдите в настройки пространства;
- В панели слева выберите Роли доступа.
- Нажмите на название роли и отредактируйте права доступа при помощи отметки тех или иных прав в чекбоксах, сгруппированных по функциям.
- Нажмите Сохранить.
Удаление роли
Удалять можно только созданные дополнительные роли. Встроенные роли удалять нельзя.
Для удаления роли:
- Перейдите в настройки пространства;
- В панели слева выберите Роли доступа.
- Нажмите кнопку удаления напротив названия роли, которую необходимо удалить или нажмите на название роли и в открывшейся справа панели нажмите Удалить.
- В открывшемся модальном окне при необходимости выберите роль, которая будет присвоена пользователям вместо удаленной роли.
- Нажмите Да, я хочу удалить роль.
Назначение роли пользователю или группе пользователей
- Перейдите в настройки пространства;
- В панели слева выберите Группы и пользователи.
- В отобразившихся таблицах групп и пользователей раскройте список в столбце Роль;
- Выберите одну или несколько ролей для группы или пользователя.
При наличии у пользователя нескольких ролей ролевые доступы суммируются и доступ определяется по максимальному разрешению.
Ended: Роли доступа к пространству
Создание пространства ↵
Создание пространства
Для создания пространства:
- На Главной странице нажмите кнопку + Пространство.
- В открывшемся окне введите:
- название нового пространства;
- ключ нового пространства буквами латинского алфавита (если ключ не ввести, он будет присвоен автоматически);
-
Выберите шаблон для нового пространства:
- Без шаблона — будет создано пустое пространство;
- Проектный офис — будет создано пространство, предзаполненное демонстрационными данными для ведения проектов;
- OKR — будет создано пространство, предзаполненное демонстрационными данными для оценки целей и ключевых результатов.
-
Нажмите Создать.
Созданное пространство отобразится в списке пространств на Главной странице.
Для создания пространств также можно воспользоваться инструментами. описанными в подразделах:
Копирование настроек пространства
Копирование настроек пространства позволяет сократить время, затрачиваемое на создание новых пространств.
Для копирования настроек в создаваемое пространство:
-
На Главной странице нажмите кнопку + Пространство.
-
В открывшемся окне введите:
- название нового пространства;
- ключ нового пространства (если ключ не ввести, он будет присвоен автоматически);
-
Поставьте отметку в чекбоксе Скопировать настройки из другого пространства. (чекбокс активен только при выборе варианта создания Без Шаблона)
-
Выберите пространство, из которого нужно скопировать настройки.
-
Нажмите Создать.
Примечание
Для копирования можно выбрать только то пространство, где у вас есть права на редактирование, управление и удаление.
Из выбранного пространства будут скопированы роли доступа, процессы, атрибуты и типы задач. Автором скопированных сущностей будет назначен пользователь, инициировавщий создание пространства и копирование настроек.
Создание пространства по шаблону
Создание пространства по шаблону применяется для того, чтобы упростить знакомство и дальнейшую работу пользователя с системой. Шаблоны состоят из демонстрационных данных и готовых настроек, которые помогают легче разобраться в функциональности системы.
Пользователь может донастроить пространство по существующим данным вместо того, чтобы создавать его с нуля.
Если при создании пространства выбран один из встроенных шаблонов, то в созданном пространстве будут присутствовать:
- страницы, их структура и наполнение в соответствии с шаблоном;
- настройки пространства в соответствии с шаблоном (роли, атрибуты, процессы, типы);
- структура папок в соответствии с шаблоном;
- расширения в соответствии с шаблоном:
- Agile со спринтами;
- Портфель с элементами;
- Запросы;
- представления в папках и расширениях;
- задачи с параметрами в соответствии с шаблоном, включая:
- статусы;
- названия;
- описания с изображениями;
- даты выполнения (относительно текущей);
- оценки;
- значения атрибутов;
- связи с задачами;
- связи со страницами;
- вложения;
- связи задач с очередями и портфелями;
- статусы очередей и портфелей;
Пользователь, создавший пространство по шаблону, назначается его администратором и может изменять любые предустановленные настройки.
Ended: Создание пространства
Переход к пространству ↵
Переход к пространству
Для перехода к ранее созданному пространству нажмите на название пространства в списке пространств на Главной странице.
На открывшейся странице отобразятся задачи из первой созданной в данном пространстве папки.
См. также: Первый вход в созданное пространство
Первый вход в созданное пространство
-
Нажмите на название пространства в списке пространств на Главной странице.
-
В открывшемся окне с надписью Пространство не содержит папок перейдите к созданию папки либо к настройкам пространства.
Ended: Переход к пространству
Настройки пространства ↵
Настройки пространства
Доступ к настройкам пространства открывается при
- первом входе в созданное пространство или
- При помощи меню Настройки после перехода в пространство.
На открывшейся странице вы можете:
- задать название пространства;
- ввести описание пространства;
- посмотреть ключ пространства.
На панели слева вы можете перейти к
- добавлению или удалению пользователей в пространстве;
- настройке ролей доступа к пространству;
- настройке процессов, которые используются в пространстве;
- настройке типов задач, которые используются в пространстве;
- настройке атрибутов, которые используются в пространстве;
- настройке интеграций;
- созданию вебхуков
- удалению пространства.
Подробнее настройки пространства описаны в подразделах:
Добавление и удаление пользователей и групп пользователей в пространстве
Примечание
Пользователи и группы создаются администратором на уровне системы. Создание пользователей и групп описано в Руководстве администратора.
Добавление пользователей
- На левой панели экрана настроек пространства нажмите Группы и пользователи.
- Нажмите Добавить пользователя.
- В открывшемся модальном окне кликните в поле ввода или начните вводить имя пользователя.
- Выберите нужных пользователей из открывшегося списка и нажмите в любое место модального окна, чтобы закрыть список.
- Нажмите Добавить.
Добавленные пользователи и их роли будут отображены в списке пользователей.
Найти нужного пользователя в списке можно при помощи поиска.
По умолчанию добавленному пользователю присваивается роль Пользователь.
Далее можно перейти к назначению роли добавленному пользователю.
Добавление группы пользователей
- На левой панели экрана настроек пространства нажмите Группы и пользователи.
- Нажмите Добавить группу.
- В открывшемся модальном окне кликните в поле ввода или начните вводить название группы.
- Нажмите Добавить.
Добавленные группы и их роли будут отображены в списке групп.
Найти нужную группу в списке можно при помощи поиска.
Далее можно перейти к назначению роли добавленной группе.
Удаление пользователя или группы
- Выберите пользователя или группу из списка и нажмите (Удалить).
- В открывшемся модальном окне нажмите Да, я хочу исключить пользователя или Да, я хочу исключить группу.
Выбранные пользователь или группа будут исключены из пространства.
Настройка процессов
Настройка процессов в пространстве описана в разделе Настройка рабочих процессов.
Создание, удаление и редактирование типов задач
Создание нового типа задачи
- На левой панели экрана настроек пространства нажмите Типы задач.
- На открывшемся экране Типы задач нажмите Создать.
- В открывшемся окне введите или выберите из списка значения в полях:
- Название;
- Иконка;
- Цвет иконки;
- Процесс;
- Атрибуты;
- Прогресс (метод расчета прогресса по умолчанию).
- При помощи чекбоксов выберите:
- способ оценки задач (в часах или сторипоинтах);
- отображать или нет виджет списания времени.
- Выберите из списка тип доступа к комментариям для задач такого типа:
- Виден всем (выбран по умолчанию);
- Виден пользователям пространства;
- Виден только определенным пользователям;
- Виден всем, кроме определенных пользователей.
- Выберите пользователей или группы, которым будет предоставлен или, наоборот, скрыт доступ к комментариям в задачах данного типа.
- Нажмите Сохранить.
Новый тип задачи будет отображен в списке типов на экране Типы задач.
Метод расчета прогресса задачи
При настройке типа задачи можно выбрать метод расчета прогресса задачи, который будет отображаться в карточке задачи по умолчанию.
Для этого из списка Прогресс в настройках типа выберите одно из значений:
- Не рассчитывать — виджет расчета прогресса не будет отображаться на карточке задачи;
- По статусу задачи;
- По прогрессу подзадач;
- По метрике.
Тип оценки
При настройке типа задачи можно выбрать тип оценки, который будет отображаться в карточке задачи по умолчанию.
Для этого при помощи отметки в блоке Оценка выберите одно или несколько значений:
- В часах;
- В сторипоинтах;
Выбранный тип оценки будет отображаться в карточке задачи в блоке ОЦЕНКА.
Также вы можете не выбирать ни одно из значений, в этом случае блок ОЦЕНКАв карточке задачи отображаться не будет.
Удаление типа задачи из пространства
- Выберите в списке тип, который необходимо удалить, и нажмите
- В открывшемся модальном окне нажмите Да, я хочу удалить тип.
Тип будет безвозвратно удален, все связанные с ним задачи сбросят поле Тип и удалены не будут.
Внимание!
При удалении типа задачи, использующегося в типе заявки, пользователю отображается уведомление о том, что будет удален тип заявки. Пользователь должен подтвердить действие. Существующие задачи по заявкам этого типа теряют признак типа.
Редактирование типа задачи
- Выберите в списке тип, который необходимо отредактировать, и нажмите
- В открывшемся окне отредактируйте поля
- Название;
- Иконка;
- Цвет иконки;
- Процесс;
- Атрибуты;
- Прогресс (метод расчета прогресса).
- При помощи чекбоксов выберите:
- способ оценки задач (в часах или сторипоинтах);
- отображать или нет виджет списания времени.
- Выберите из списка тип доступа к комментариям для задач такого типа:
- Виден всем;
- Виден пользователям пространства;
- Виден только определенным пользователям;
- Виден всем, кроме определенных пользователей.
- Выберите пользователей или группы, которым будет предоставлен или, наоборот, скрыт доступ к комментариям в задачах данного типа.
- Нажмите Сохранить.
Внимание!
При изменении типа доступа к комментариям настройка применится только для тех комментариев, которые будут добавлены после внесения изменений в тип задачи.
Создание, удаление и редактирование атрибутов
Создание атрибута
- На левой панели экрана настроек пространства нажмите Атрибуты.
- На открывшемся экране атрибутов нажмите Создать.
- В открывшемся окне заполните поля:
- Название (обязательно);
- Описание;
- Привязать к типу задачи;
- Формат (обязательно).
- Нажмите Сохранить.
.
Созданный атрибут будет отображен в списке атрибутов для данного пространства.
Удаление атрибута из пространства
- Выберите в списке атрибут, который необходимо удалить, и нажмите
- Нажмите Да, я хочу удалить атрибут.
Удаление атрибута приведет к потере всех значений данного атрибута во всех элементах.
Редактирование атрибута
- Выберите в списке атрибут, который необходимо отредактировать, и нажмите
- Отредактируйте поля:
- Название;
- Описание;
- Привязать к типу задачи.
- Нажмите Сохранить.
Формат атрибута задается при создании и редактированию не подлежит.
Удаление пространства
- Перейдите в настройки пространства.
- Выберите на панели слева Удаление.
- Введите в поле ввода название пространства и нажмите Удалить пространство.
- В открывшемся модальном окне нажмите Да, я хочу удалить пространство.
Пространство будет безвозвратно удалено со всем содержимым.
Ended: Настройки пространства
Ended: Пространства
Папки ↵
Работа с папками
Папка объединяет задачи со схожими процессами и доступами (например, группировка работы по проектам, продуктам, командам).
Конфигурация рабочих процессов и типов для папки соответствует конфигурации пространства.
Пользователь может создавать вложенные папки.
Если папка содержит вложенные папки или расширения, то на панели навигации рядом с названием папки будет отображена кнопка раскрытия вложенных папок
Если папка не содержит вложенных папок или расширений, то кнопка раскрытия не отображается.
Работа с папками описана в подразделах:
Создание папок
Создание папки
- Перейдите в пространство, в котором требуется создать папку.
-
Если пространство не содержит папок, то на открывшейся странице нажмите кнопку Создать папку. Если пространство содержит ранее созданные папки, нажмите кнопку рядом с названием пространства.
-
В открывшемся окне введите название папки и нажмите Создать.
Создание вложенной папки
Выполняется аналогично созданию папки в пространстве, но на шаге 2 следует нажать кнопку напротив названия той папки, в которой вы хотите создать вложенную папку.
Изменение папки
-
Нажмите кнопку раскрытия меню рядом с названием папки и нажмите Настройки.
-
В открывшемся окне в блоке Настройки введите
- новое название папки;
- описание папки.
-
Нажмите Сохранить.
Папка будет сохранена с новым названием и описанием.
Удаление папки
-
Нажмите кнопку раскрытия меню рядом с названием папки.
-
Выберите Удаление.
-
Введите в поле ввода название папки и нажмите Удалить.
-
В открывшемся модальном окне нажмите Да, я хочу удалить папку.
Папка будет безвозвратно удалена со всем содержимым.
Перемещение папки
TeamStorm позволяет легко перемещать папки, перетаскивая их из одной в другую или в корень рабочего пространства.
Для перемещения папки:
-
Захватите папку, зажав левую клавишу мыши.
-
Перетащите папку в другую папку или в корень рабочего пространства (для этого выберите любое не занятое место в панели навигации) и отпустите клавишу.
Если перемещение произошло успешно, отобразится уведомление, содержащее активные ссылки на папки, между которыми произошло перемещение.
Невозможно перемещение в следующих случаях:
- при попытке перенести папку в очередь,
- при попытке перенести папку в расширение,
- при попытке перенести папку в ту локацию, где она уже находится,
- при попытке перенести папку в саму себя,
В каждом из этих случаев отобразится соответствующее уведомление.
Ended: Папки
Расширения ↵
Работа с расширениями
TeamStorm позволяет создавать использовать расширения, облегчающие планирование работы:
Расширения работают на уровне папок.
Agile ↵
Agile
Расширение Agile позволяет планировать работу с применением гибких методологий разработки. Работа с расширением описана в подразделах:
Добавление расширения Agile
-
Перейдите в нужное пространство.
-
Нажмите рядом с названием папки, для которой хотите включить расширение, и выберите Добавить Agile.
В случае выбора расширения Agile для выбранной папки будет автоматически создана очередь Backlog. Очередь Backlog используется для создания упорядоченных по приоритету списков работы команды, которая работает по методологии Agile.
Если команда в работе использует фреймфорк Scrum, то выполнение работы организуется с помощью спринтов — фиксированных периодов времени в течение которого будет выполнена вся запланированная в них работа.
Спринт представляет собой упорядоченный список задач (очередь). Для спринта устанавливается сроки, длительность и предполагаемый объем работы, который команда может выполнить в указанный срок. Наполнение спринта происходит как правило через Backlog. Команда выбирает задачи, которые имеют более высокий приоритет до тех пор, пока не наберет достаточный объем задач.
Создание спринта
-
Выберите папку, для которой подключено раcширение Agile.
-
При необходимости при помощи навигационных кнопок разверните список расширений и очередей выбранной папки.
-
Напротив расширения Agile нажмите кнопку
-
В открывшемся модальном окне заполните поля:
- Название;
- Дата начала;
- Дата завершения;
- Число рабочих дней в спринте;
- Описание (заполняется опционально).
-
Нажмите Создать.
Будет открыто представление задач для созданного спринта.
Запуск и завершение спринта
Запуск спринта
В представлении задач выбранного спринта нажмите Запустить спринт в верхней правой части представления.
Запущенный спринт будет помечен зеленой точкой на панели навигации справа.
Завершение спринта
- Нажмите Завершить спринт в верхней правой части представления задач выбранного спринта.
- В открывшемся окне нажмите Завершить.
Архив
Завершенный спринт перестанет быть помеченным зеленой точкой на панели навигации слева.
Спринт будет перенесен в архив и его невозможно будет вернуть в очередь. Все незавершенные задачи будут перенесены в Backlog.
Архив автоматически создается в расширении Agile при завершении хотя бы одного спринта.
Редактирование спринта
-
Нажмите напротив нужного спринта на панели навигации в правой части экрана или в правом верхнем углу в представлении задач выбранного спринта и выберите Настроить.
-
Измените данные в полях:
- название;
- дата начала;
- дата завершения;
- количество рабочих дней;
- описание.
-
Нажмите Сохранить.
Добавление команды в спринт ↵
Добавление команды в спринт
Существует два способа добавления команды в спринт:
Добавление участников в команду
-
Перейдите в спринт, в который требуется добавить команду.
-
Нажмите Добавить команду в правой верхней части экрана.
-
В открывшемся модальном окне нажмите Добавить участника.
-
Выберите участников и щелкните на свободное место в модальном окне.
-
В отобразившихся полях для каждого участника введите количество дней отпуска и количество часов, которые участник работает в день в рамках спринта.
-
Нажмите Сохранить.
В правой верхней части экрана будет отображена аналитическая диаграмма, показывающая:
- емкость команды (в часах);
-
все оценки по задачам (в часах).
Емкость команды вычисляется как произведение количества сотрудников в команде на количество рабочих часов сотрудника в день и на количество рабочих дней в спринте за вычетом возможных дней отпуска сотрудника.
Оценка времени по задачам вычисляется как сумма оценок времени выполнения всех задач спринта.
Копирование команды в спринт
-
Перейдите в спринт, в который требуется добавить команду.
-
Нажмите Добавить команду в правой верхней части экрана.
-
В открывшемся модальном окне нажмите Скопировать из спринта.
-
Выберите из списка спринт, из которого требуется скопировать команду.
-
При необходимости отредактируйте в отобразившихся полях количество дней отпуска каждого участника и количество часов, которые участник работает в день в рамках спринта.
-
Нажмите Сохранить.
Примечание
При копировании команды из другого спринта по умолчанию копируется количество часов, которые каждый участник работает в день. Количество дней отпуска не копируется.
Ended: Добавление команды в спринт
Редактирование команды спринта
- Перейдите в спринт, в котором нужно отредактировать команду.
- Нажмите в правом верхнем углу экрана и выбрать Редактировать команду.
- В открывшемся окне отредактируйте состав и другие параметры команды (подробнее в подразделе Добавление участников в команду).
- Нажмите Сохранить.
В результате изменятся данные, отображаемые в аналитической диаграмме Емкость команды.
Планировщик спринта
При нажатии на аналитическую диаграмму в правой верхней части экрана спринта будет открыта боковая панель Распределение задач.
Примечание
Планировщик спринта работает, если в расширении выбран способ оценки задач по времени. При выборе способа оценки в сторипоинтах виджет не активен.
Панель используется для планирования спринта и наглядно отображать загрузку как команды в целом, так и отдельных участников команды и позволяет понять сколько еще задач можно добавить в спринт.
На панели отображаются:
- емкость команды;
- оценка спринта (назначенные на команду задачи в часах);
- по каждому участнику отображается сумма оценок назначенных на него задач в спринте.
- по каждому участнику отображается отношение его емкости к сумме оценок по назначенным на него задачам в спринте;
- индикация недозагруженности или перегруженности как команды в целом, так и отдельных участников;
- сумма оценок всех назначенных задач;
- отношение оценки спринта к емкости команды;
- отношение оценки спринта к сумме назначенных задач;
- сумма оценок задач, не назначенных ни на кого.
- дополнительные ресурсы (сотрудники, на которых назначены задачи, но которые не являются участниками команды спринта).
График сгорания и отчеты ↵
График сгорания и отчеты
Оценить прогресс выполнения спринта можно при помощи следующих инструментов:
График сгорания
График сгорания — это вид графического отчета, который позволяет пользователю наблюдать за ходом проекта и фиксировать оставшееся время для работы над бэклогом.
График сгорания реализован в виде отдельного представления Отчеты, доступного только в спринтах и элементах портфеля.
Внимание
Для построения графика необходимо запустить спринт.
График содержит:
- вертикальная ось — статистика оценки в количестве задач (по умолчанию) или в сторипоинтах;
- горизонтальная ось — период в днях (для спринта — дата запуска и окончания спринта, для элемента портфеля — дата перевода элемента в статус категории В РАБОТЕ и дата окончания);
- общий объем работы, оставшийся в спринте или элементе портфеля, в соответствии с оценками или количеством незакрытых задач (синяя линия с заливкой);
- идеальное выполнение работ — рекомендация с примерным положением команды при линейном прогрессе без учета календарных выходных (оранжевая линия).
Справа от графика отображается количество примененных к нему фильтров.
Примечание
В случае изменения оценок после запуска спринта стартовый объем работы не изменяется, линия идеального выполнения работ не изменяется, изменяется общий объем работ на день изменения оценки.
Один спринт или элемент портфеля содержит только один график.
Настройка графика
-
Нажмите кнопку справа от графика и выберите Настроить.
-
В раскрывшейся панели Настройка:
-
введите название графика (опционально);
- выберите метрику оценки (по количеству задач или по часам);
-
выберите и примените фильтры (на данный момент доступна только фильтрация по типу задач);
-
Нажмите Сохранить.
Если при создании расширения Agile выбрана оценка в сторипонтах, то помимо количества задач доступна опция Сторипоинты (учитываются только задачи с установленной оценкой).
Если при создании расширения Agile выбрана оценка в часах, то помимо количества задач доступна опция Часы (учитываются только задачи с установленной оценкой).
Отчеты по спринту
Отчеты по спринту позволяют наблюдать за ходом спринта и фиксировать происходящие во время спринта изменения.
Отчеты реализованы в виде отдельного представления (Отчеты), доступного только в спринтах.
Представление содержит следующие виды отчетов:
- Выполненные задачи;
- Невыполненные задачи;
- Задачи, добавленные после запуска;
- Исключенные задачи;
- Журнал изменения оценок задач;
- Задачи, с которыми был запущен спринт.
Отчеты представляют собой таблицы со списками задач, содержащие:
- название задачи:
- идентификатор задачи;
- другие важные параметры, зависящие от типа отчета.
Каждый из типов отчета в верхней части содержит название типа отчета, количество задач в отчете, сумму оценок задач (в скобках) и информацию о том, на какой момент отображаются данные.
В таблицах доступна сортировка столбцов. Для сортировки нажмите на заголовок столбца.
По нажатию на строку с задачей открывается полноэкранная карточка задачи в отдельном окне.
Выполненные задачи
Отчет представляет собой таблицу со столбцами:
- Название;
- ID;
- Статус;
- Дата завершения;
- Оценка;
- Планирование.
Таблица отображается после запуска спринта. В таблицу попадают задачи, которые были переведены в статусы категорий ВЫПОЛНЕНО или ОТМЕНЕНО раньше даты завершения спринта. Данные в таблице отображаются на момент совершения действия (перевода задачи в статус категорий ВЫПОЛНЕНО или ОТМЕНЕНО).
Столбец Планирование позволяет проконтролировать, что были выполнены те задачи, которые были изначально запланированы в спринте.
Если выполненная задача была добавлена в спринт после его запуска, то столбец в отчете содержит признак Вне плана.
Невыполненные задачи
Отчет представляет собой таблицу со столбцами:
- Название;
- ID;
- Статус;
- Ответственный;
- Оценка;
- Планирование.
Таблица отображается после завершения спринта. В таблицу попадают задачи, статус которых на момент завершения спринта отличается от типов статусов категории ВЫПОЛНЕНО или ОТМЕНЕНО.
В таблице отображается иерархия задач (родительская задача и подзадачи), если соответствующие задачи подпадают под критерии включения в отчет.
Столбец Планирование позволяет проконтролировать, что были выполнены те задачи, которые были изначально запланированы в спринте.
Если невыполненная задача была добавлена в спринт после его запуска, то столбец в отчете содержит признак Вне плана.
Задачи, добавленные после запуска
Отчет представляет собой таблицу со столбцами:
- Название;
- ID;
- Изменил(а) оценку;
- Дата добавления;
- Оценка.
Таблица отображается после запуска спринта. В таблицу попадают задачи, у которых дата добавления в спринт позже даты запуска спринта. Данные в таблице отображаются на момент совершения действия (добавления задачи в спринт).
Если задача была добавлена в спринт несколько раз, то отображаются все добавления.
Если задача была добавлена и удалена из спринта, то обе операции отображаются в соответствующих отчетах.
Исключенные задачи
Отчет представляет собой таблицу со столбцами:
- Название;
- ID;
- Статус;
- Исключил(а);
- Дата исключения;
- Оценка.
Таблица отображается после запуска спринта. В таблицу попадают задачи, исключенные из спринта до его завершения. Данные в таблице отображаются на момент совершения действия (исключения задачи).
В таблице отображается иерархия задач (родительская задача и подзадачи), если соответствующие задачи подпадают под критерии включения в отчет.
Журнал изменения оценок задач
Отчет представляет собой таблицу со столбцами:
- Название;
- ID;
- Статус;
- Дата изменения;
- Изменение оценки.
Таблица отображается после фактического запуска спринта. В отчет попадают задачи, у которых после даты старта спринта оценка менялась в большую или меньшую сторону. Данные в таблице отображаются на момент совершения действия (изменения оценки задачи).
Задачи, с которыми был запущен спринт
Отчет представляет собой таблицу со столбцами:
- Название;
- ID;
- Статус;
- Ответственный;
- Оценка.
Таблица отображается после запуска спринта. В отчет попадают задачи, дата и время добавления которых в спринт предшествуют дате и времени запуска спринта.
Ended: График сгорания и отчеты
Удаление спринта
-
Нажмите напротив нужного спринта на панели навигации в правой части экрана или в правом верхнем углу в представлении задач выбранного спринта.
-
Нажмите Удалить.
-
В открывшемся модальном окне нажмите Да, я хочу удалить спринт.
Спринт будет безвозвратно удален, все задачи, которые были в спринте, сбросят поле Спринт и удалены не будут.
Примечание
Удалить можно только свежесозданный или запущенный спринт. Завершенный спринт удалить нельзя.
Отключение расширения Agile
-
Выберите папку, для которой подключено раcширение Agile.
-
Нажмите рядом с названием папки и выберите в меню пункт Расширения.
-
Нажмите Удалить Agile.
-
В появившемся модальном окне нажмите Да, я хочу удалить Agile.
Расширение будет удалено, все задачи, которые были добавлены в очереди Backlog и Спринт сбросят поле Спринт и удалены не будут.
Ended: Agile
Портфель ↵
Портфель
Портфель — это расширение, позволяющее группировать задачи по элементам портфеля:
- релизу;
- версии;
- проекту;
- другой организационной сущности.
Переход в существующий портфель выполняется из навигационной панели в левой части экрана.
При открытии портфеля отображается информационная панель в виде таблицы со следующими данными:
Имя
— имя элемента портфеля;Ответственный
— ответственный(-ые) (если были добавлены в элемент расширения);Дата окончания
— дата окончания;Статус
— статус элемента портфеля;По плану
— задачи, у которых дата окончания < даты фактического завершения задачи (дата перехода в любой статус категории Done и Cancelled);Прогресс
— процент выполненных задач;Завершено задач
— процент задач элемента в статусах категории Done по отношению к общему количеству задач элемента (кроме задач в статусе Cancelled);Просроченные задачи в работе
— количество задач, у которых дата фактического завершения задачи не заполнена, при этом плановая дата завершения < текущей даты;Задач в срок
— количество задач, у которых дата фактического завершения задачи не заполнена, при этом плановая дата завершения > текущей даты;Выполненные
— количество задач элемента в статусах категорий Done;Всего
— количество всех задач элемента.
Подробнее работа с расширением описана в подразделах:
Добавление портфеля
-
Перейдите в нужное пространство.
-
Нажмите рядом с названием папки, для которой хотите включить расширение, и выберите Добавить Портфель.
-
В открывшемся модальном окне введите название нового портфеля и нажмите Создать.
Будет создан пустой портфель, который отобразится в структуре папок на навигационной панели.
Перейти в пустой портфель невозможно.
Создание элемента портфеля
Элемент портфеля — это список задач, сгруппированный по какой-либо организационной сущности: релизу, версии или проекту.
Создание элемента
-
На навигационной панели в левой части экрана найдите портфель, в котором нужно создать элемент и нажмите напротив его названия.
-
В открывшемся модальном окне заполните поля:
- Название (обязательно);
- Дата начала;
- Дата окончания;
- Ответственный;
- Описание.
-
Нажмите Создать.
Будет создан элемент портфеля, в который можно перейти, выбрав его в структуре папки на панели навигации или из набора коллекций в верхней части карточки задачи.
При переходе в новый элемент отобразится таблица с пустым списком задач.
Примечание
Если при переходе в элемент портфеля из карточки задачи в списке есть элементы с одинаковым названием, обратите внимание на путь к элементу, указанный под его названием. Путь содержит название папки и название того портфеля, в котором содержится элемент.
Добавление задач в элемент портфеля
Добавить задачи в элемент портфеля можно несколькими способами:
- перетаскиванием;
- добавлением через карточку задачи;
- массово через представление задач типа «Таблица».
Примечание
В результате добавления задачи в элемент портфеля ее расположение не изменяется, устанавливается только связь с элементом портфеля.
При добавлении задачи в элемент портфеля автоматически добавляются дочерние задачи.
Если задача уже связана с какими-либо элементами, то предыдущие связи сохраняются.
Добавление перетаскиванием подробно описано в разделе Перемещение задач.
Добавление через карточку задачи
- Откройте карточку задачи, которую нужно добавить в элемент портфеля.
- Нажмите в верхней части карточки.
-
В открывшемся меню выберите элемент портфеля, в который требуется добавить задачу.
Задача будет добавлена в элемент портфеля и название этого элемента отобразится в карточке задачи.
Примечание
Если в списке элементов портфеля есть элементы с одинаковым названием, обратите внимание на путь к элементу, указанный под ним. Путь содержит название папки и название того портфеля, в которых содержится элемент.
Массовое добавление задач в элемент портфеля
Массовое добавление задач в элемент портфеля описано в разделе Массовые действие с задачами.
Изменение статуса элемента портфеля
Первый способ
- Перейдите в элемент портфеля.
- Справа от названия элемента нажмите на статус (по умолчанию НОВОЕ).
- Выберите новый статус.
Второй способ
- Перейдите в портфель, содержащий нужный элемент.
- Выберите нужный элемент портфеля в таблице.
- Нажмите на текущий статус в соответствующем столбце (по умолчанию НОВОЕ).
- Выберите новый статус.
Примечание
Подробнее о статусах смотри Изменение статуса задачи.
График сгорания
График сгорания — это вид графического отчета, который позволяет пользователю наблюдать за ходом проекта и фиксировать оставшееся время для работы над бэклогом.
График сгорания реализован в виде отдельного представления (Отчеты), доступного только в спринтах и элементах портфеля.
Примечание
Для построения графика для элемента портфеля необходимо добавить дату начала и завершения и перевести статус элемента портфеля в категорию В РАБОТЕ.
График содержит:
- вертикальная ось — статистика оценки, в сторипоинтах или в количестве задач (по умолчанию), доступен выбор — в часах (учитываются только задачи с установленной оценкой);
- горизонтальная ось — период в днях (для спринта — дата запуска и окончания спринта, для элемента портфеля — дата перевода элемента в статус категории В РАБОТЕ и дата окончания);
- общий объем работы, оставшийся в спринте или элементе портфеля, в соответствии с оценками или количеством незакрытых задач (синяя линия с заливкой);
- идеальное выполнение работ — рекомендация с примерным положением команды при линейном прогрессе без учета календарных выходных (оранжевая линия).
Справа от графика отображается количество примененных к нему фильтров.
Примечание
Один элемент портфеля содержит только один график.
Настройка графика
- Нажмите кнопку справа от графика и выберите Настроить.
- В раскрывшейся панели Настройка:
- введите название графика (опционально);
- выберите метрику оценки (в количестве задач, в часах, в сторипоинтах);
- выберите и примените фильтры (на данный момент доступна только фильтрация по типу задач);
- Нажмите Сохранить.
Редактирование портфеля и элемента портфеля
Переименование портфеля
-
Нажмите правом верхнем углу экрана, затем выберите Переименовать.
-
В открывшемся модальном окне введите новое название портфеля и нажмите Сохранить.
Редактирование элемента портфеля
-
Перейдите в элемент портфеля, который требуется изменить, и нажмите в правом верхнем углу экрана, затем выберите Настроить.
-
В открывшемся модальном окне измените:
- название элемента;
- дату начала;
- дату завершения;
- ответственного исполнителя;
- описание элемента.
-
Нажмите Сохранить.
Удаление портфеля и его элементов
Удаление портфеля
-
На панели навигации слева выберите портфель, который требуется удалить, и нажмите кнопку в правом верхнем углу экрана, затем выберите Удалить.
-
В открывшемся модальном окне нажмите Да, я хочу удалить портфель.
Портфель и все его элементы будут удалены. Связи задач с элементами удаленного портфеля будут разорваны.
Удаление элемента портфеля
-
На панели навигации слева выберите элемент портфеля, который требуется удалить, и нажмите кнопку .
-
В открывшемся модальном окне нажмите Да, я хочу удалить элемент портфеля.
Элемент портфеля будет удален. Связи задач с удаленным элементом будут разорваны.
Ended: Портфель
Ended: Расширения
Задачи ↵
Работа с задачами
В системе доступно создание задач — структурированных элементов для управления проектом.
Пользователь может:
- вносить информацию о необходимых действиях для выполнения задачи;
- устанавливать исполнителя задачи;
- изменять статус по мере выполнения задачи и закрывать ее;
- добавлять и выгружать вложения (файлы);
- выстраивать иерархию задач, добавляя вложенные задачи;
- оставлять комментарии к задаче;
- создавать к задачам пользовательские атрибуты разных типов;
- связывать задачи, выстраивая между ними отношения типа:
- «зависимость»;
- «блокирование»;
- «дублирование».
- указывать рабочий процесс, по которому должна проходить задача.
Работа с задачами описана в подразделах:
- Представление задач
- Фильтрация и поиск
- Создание задачи
- Карточка задачи
- Редактирование задачи
- Массовые действия с задачами
- Добавление подзадачи
- Работа с файлами вложений
- Учет трудозатрат
- Прогресс выполнения задачи
- Добавление и удаление связей
- Комментарии к задачам
- Ранжирование задач
- Перемещение задач
- История изменения задачи
- Создание ссылки на задачу
- Предоставление доступа к задаче
Представление задач ↵
Представление задач
Представление задач используется для наглядного отображения задач и их параметров.
Работа с представлениями описана в подразделах:
Описание представлений
Вся информация о выполнении задач отслеживается с помощью представлений:
- Доска;
- Таблица;
- Гант;
- Отчеты.
Пользователю доступно создание собственного представления любого из типов, кроме представления Отчеты.
Представления отображают задачи выбранной папки или списка задач. В представлениях доступны фильтрация и поиск отображаемых задач по названию, статусу, типу и ответственному за задачу.
Для переключения между представлениями нажмите название нужного представления на переключателе в верхней части экрана. Выбранное представление будет подчеркнуто и выделено цветом.
Доска
Доска представляет собой набор карточек задач, сгруппированных по статусам в колонках доски.
В каждой колонке Доски отображаются первые 25 задач. Для загрузки оставшихся задач нажмите кнопку Показать еще в нижней части колонки.
Карточки Доски могут содержать краткую информацию об ответственном, количестве комментариев к задаче, емкости задачи, датах начала и завершения задачи и т.д.
Подробнее о настройке отображения атрибутов на карточке доски в подразделе Настройка доски.
Таблица
Таблица представляет собой список задач с параметрами.
Если задача в представлении Таблица содержит подзадачи, то рядом с названием задачи располагается кнопка раскрытия списка подзадач .
В раскрытом списке подзадачи отображаются в хронологическом порядке: от более новых вверху к более старым внизу.
Гант
Представление Гант отображает в графическом виде то, как выполняется запланированная работа с течением времени.
Подробнее о представлении см. Диаграмма Ганта.
Отчеты
Для спринтов и портфелей в системе доступно представление Отчеты.
Представление создается автоматически.
В представлении Отчеты содержится График сгорания, а также отчеты по выполнению и изменению состава задач в спринте.
Подробнее о представлении Отчеты см. Отчеты по спринту.
Количество задач в папке или очереди
Задачи в представлениях отображаются по мере прокручивания таблицы или колонки на доске.
Так как количество задач в папке или очереди может быть очень большим, в правом верхнем углу любого из представлений под кнопкой Добавить задачу отображается количество задач.
Если не применены фильтрация или поиск задач, то отображается одно число — общее количество задач для данной папки или очереди на всех уровнях вложенности.
Если применены фильтры или заполнено поле поиска, то отображаются два числа:
- количество задач, соответствующее результатам фильтрации или поиска, на всех уровнях вложенности;
-
общее количество задач для данной папки или очереди на всех уровнях вложенности.
Создание, редактирование и удаление пользовательского представления
Пользовательские представления нужны для того, чтобы пользователь каждый раз не перенастраивал состояние основных представлений для себя или для команды.
Создание пользовательского представления
- Откройте папку, в которой требуется создать пользовательское представление.
- Нажмите кнопку в правой верхней части экрана.
- Введите название нового представления и выберите его тип — «Доска» или «Таблица». Тип невозможно будет изменить в дальнейшем.
- Нажмите Добавить.
Будет создано новое пользовательское представление, далее можно будет перейти к настройке представлений.
Также новое пользовательское представление можно создать из настроенного существующего представления. Для этого:
- Настройте текущее представление.
- Нажмите Настроить и выберите Сохранить как новое.
- Введите название нового представления и нажмите Сохранить.
Будет создано представление того же типа, что и исходное.
Редактирование пользовательского представления
- Нажмите Настроить и выберите Переименовать.
- Введите новое название представления и нажмите Переименовать.
Удаление пользовательского представления
- Нажмите Настроить и выберите Удалить.
- В открывшемся модальном окне нажмите Да, я хочу удалить представление.
Представление будет безвозвратно удалено.
Настройка представлений
Кнопка настройки представлений расположена в правой верхней части представления.
Настройка Таблицы
Выбор атрибутов
-
Переключите представление на тип Таблица.
-
Нажмите Настроить, затем Атрибуты.
-
В отобразившейся панели отметьте те атрибуты, которые требуется видеть в представлении или снимите отметки с тех атрибутов, которые требуется скрыть.
Таблица представления задач будет содержать столбцы только с отмеченными на панели настройки атрибутами.
Изменение порядка столбцов
- Переключите представление на тип Таблица.
- При помощи правой кнопки мыши захватите заголовок столбца таблицы, который вы хотите переместить.
- Не отпуская кнопки переместите заголовок на новое место и отпустите кнопку.
- Нажмите Сохранить представление в правом верхнем углу.
Порядок столбцов сохранится для всех пользователей.
Настройка Доски
Отображение атрибутов на карточке
- Переключите представление на тип Доска.
- Нажмите Настроить и выберите Отображение атрибутов.
- В открывшемся меню выберите тип задачи. Отображение атрибутов будет изменено для карточек с задачами этого типа.
- В открывшемся меню отметьте те атрибуты, которые вы хотите видеть на карточке или снимите отметки с тех атрибутов, которые вы хотите скрыть с карточки.
Выбранные атрибуты отобразятся на карточке. Для представления атрибутов используются их символические изображения.
Пример
На карточке доски отображены атрибуты:
ID
;
Ответственный
;
Дата выполнения
;
Комментарии
;
Вложения
.
На карточке отображается не более пятнадцати атрибутов.
Невозможно скрыть с карточки отображение идентификатора и названия задачи.
Выбор статусов
-
Переключите представление на тип Доска.
-
Нажмите Настроить и выберите Статусы и процессы.
-
В открывшемся меню отметьте те статусы и/или процессы, которые вы хотите видеть в представлении или снимите отметки с тех статусов или процессов, которые требуется скрыть.
Примечание
- При выборе процесса выбираются все статусы, входящие в процесс.
- При снятии выбора с процесса сбрасываются все входящие в него статусы.
- При снятии выбора с отдельного статуса, выбор снимается со статуса во всех процессах, в которые он добавлен.
- По умолчанию выбраны все процессы, которые существуют в пространстве на момент создания папки.
Если часть статусов скрыта при настройке, но задачи с этими статусами присутствуют в папке или очереди, то на доске отобразится раскрываемая колонка Другие статусы.
При нажатии на Другие статусы будет отображена колонка, содержащая задачи со всеми скрытыми статусами.
Порядок колонок
Для сортировки порядка колонок, отображаемых на доске:
- Нажмите Настроить и выберите Порядок колонок.
- В открывшемся меню захватите нужный статус, наведя указатель и нажав левой кнопкой мыши на специальное поле слева от его названия.
- Не отпуская кнопки, перетащите статус на новое место и отпустите кнопку.
Положение колонок динамически изменится в представлении.
Группировка задач на доске
Группировка задач на доске позволяет визуально разделять задачи по разным параметрам.
Для группировки задач:
- Нажмите Настроить и выберите Группировать.
- Выберите из выпадающего списка по какому параметру вы хотите сгруппировать задачи:
- ответственному;
- родительской задаче;
- элементу портфеля;
- атрибуту;
- В зависимости от выбранного на предыдущем шаге параметра из отобразившегося выпадающего списка выберите:
- тип родительской задачи;
- портфель;
- атрибут (типа "тег", название тега).
- Убедитесь в том, что задачи сгруппированы, и сохраните представление.
При группировке по ответственному второй выпадающий список для выбора дополнительного параметра не отображается.
Задачи группируются в алфавитном порядке. Отображение группы карточек можно скрывать или раскрывать. Справа от названия группы отображается общее количество задач данной группы
Задачи, ответственный для которых не назначен, отображаются в нижней части доски в группе Не назначен.
Про группировке по остальным параметрам задачи, не имеющие выбранного параметра (атрибута, портфеля, родительской задачи и т.д.) отображаются в нижней части доски в группе Другие.
Сброс настроек
Для сброса настроек представления нажмите Настроить, затем выберите Сбросить настройки. Настройки будут сброшены без дополнительного подтверждения.
Отслеживание прогресса в представлении
В представлении Таблица пользователь может отслеживать прогресс выполнения задач.
Для отображения столбца с прогрессом:
- Переключите представление на тип «Таблица».
- Перейдите к настройке представлений.
- Выберите атрибут Прогресс и сохраните представление.
В таблице отобразится столбец с графическим и числовым отображением прогресса выполнения задачи.
Значение столбца можно редактировать прямо в представлении, если для задачи выбран расчет прогресса по метрике. В других случаях редактирование в представлении недоступно.
Ended: Представление задач
Фильтрация и поиск ↵
Фильтрация и поиск
TeamStorm позволяет находить задачи благодаря встроенным инструментам фильтрации и поиска.
В этом разделе описаны:
Фильтрация задач ↵
Фильтрация задач
В представлениях задач по умолчанию доступна фильтрация по следующим системным атрибутам:
- Статус;
- Ответственный;
- Тип.
При помощи настройки фильтров можно добавить следующие атрибуты:
- ID;
- Автор;
- Автор изменения;
- Дата выполнения;
- Дата завершения;
- Дата изменения;
- Дата начала;
- Дата создания;
- Затраченное время;
- Название;
- Оставшееся время;
- Плановая оценка;
- Портфель (указывается название существующих в расположении портфелей);
- Спринт;
- Сторипоинты;
Кроме того в представлении Доска по умолчанию доступна фильтрация по атрибуту Процессы.
Для фильтрации задач:
-
Нажмите название фильтра (Например - Статус). Если соответствующий фильтр уже применен и вы хотите отредактировать его, нажмите на значок карандаша справа от названия фильтра.
-
Выберите значения атрибута (одно или несколько), по которым будет производиться фильтрация.
-
Выберите оператор фильтрации (набор операторов может отличаться в зависимости от выбранного фильтра):
- Равен — будут отображены задачи со значениями, равными выбранным;
- Не равен — будут отображены все задачи, кроме задач с выбранными значениями;
- Заполнен — будут отображены задачи, у которых выбранный атрибут заполнен любым значением;
- Не заполнен — будут отображены задачи, у которых выбранный атрибут не заполнен каким-либо значением;
- Любой из указанных — будут отображены задачи, у которых атрибут соответствует любой из выбранных опций;
- Все из указанных — будут отображены задачи, у которых опции атрибута включает все выбранные опции;
- Ни один из указанных — будут отображены задачи, у которых опции атрибута не соответствуют хотя бы одной из выбранных опций;
- Не равно всем указанным — будут отображены задачи, у которых опции атрибута не соответствуют всем выбранным опциям;
- Больше — будут отображены задачи, у которых значение атрибута (например, для типа Время) больше указанного;
- Больше или равно — будут отображены задачи, у которых значение атрибута (например, для типа Время) больше или равно указанному;
- Меньше — будут отображены задачи, у которых значение атрибута (например, для типа Время) меньше указанного;
- Меньше или равно — будут отображены задачи, у которых значение атрибута (например, для типа Время) меньше или равно указанному;
-
Для того, чтобы закрыть меню, щелкните на любое место на экране представления.
Шаги 2 и 3 можно менять по порядку выполнения, если это более удобно пользователю.
На экране представления будут отображены задачи, отфильтрованные по соответствующим атрибутам и их значениям.
Внимание
Кнопка Скрыть скрывает фильтр по текущему атрибуту из представления.
Фильтрация по типу связи
Фильтрация по типу связи — это вид фильтрации, позволяющий найти в представлении все задачи, у которых установлена связь с выбранной задачей или все задачи, имеющие/не имеющие связи определенного типа с другими задачами.
Для фильтрации по типу связи:
- Создайте фильтр типа Связь как описано в разделеНастройка панели фильтров.
- Нажмите название фильтра на панели фильтров.
- Выберите оператор фильтрации:
- Равен – будут отображены задачи, у которых есть связь с выбранной задачей;
- Не равен – будут отображены задачи, у которых нет связи с выбранной задачей;
- Заполнен – будут отображены задачи, у которых есть связи выбранного типа;
- Не заполнено – будут отображены задачи, у которых нет связей выбранного типа.
- Выберите тип связи:
- Связана;
- Дублирует;
- Блокирует;
- Заблокирована;
- Подзадача.
- Начните вводить название или идентификатор задачи и выберите задачу из раскрывшегося списка (для операторов Равен и Не равен).
- Выберите тип поиска (для операторов типа Равен и Не равен):
- Прямой поиск – позволяет найти задачи, непосредственно связанные с выбранной задачей;
- Рекурсивный поиск – позволяет найти задачи, связанные с выбранной задачей через другую задачу.
- Убедитесь в том, что в представлении отобразились отфильтрованные задачи и сохраните представление.
Рекурсивный поиск позволяет находить задачи, не связанные с выбранной задачей непосредственно.
Пример: А блокирует задачу Б, которая блокирует В. При активации рекурсивного поиска по задачам которые блокируют В, запрос вернет А и Б. Без рекурсивного поиска вернется только Б, которая непосредственно блокирует В.
Фильтрация по портфелям и элементам портфелей
Фильтрация по портфелю и его элементам позволяет понять содержание проекта или убедиться в правильности распределения задач по проектам.
Для фильтрации по портфелю и его элементам:
- Создайте фильтр по конкретному портфелю и добавьте в него нужные элементы, как указано в подразделе Настройка панели фильтров.
- При необходимости отредактируйте состав элементов портфеля.
- Выберите оператор фильтрации:
- Любой из указанных;
- Ни один из указанных;
- Все из указанных;
- Не равно всем указанным;
- Заполнен;
- Не заполнен.
- Сохраните представление, если это необходимо.
Фильтрация по спринту
Фильтрация по спринту доступна в папках, запросах и элементах портфеля.
В качестве параметра фильтрации можно выбрать очередь Backlog, а также одну или несколько очередей типа Спринт.
Для фильтрации по спринту:
- Создайте фильтр Спринт как указано в подразделе Настройка панели фильтров.
- Выберите оператор фильтрации:
- Равно;
- Не равно;
- Заполнено;
- Не заполнено.
- Сохраните представление, если это необходимо.
Для условий Равно и Не равно можно выбрать одну или несколько очередей из списка.
При выдаче очереди по умолчанию будут отсортированы в порядке списка спринтов в карточке задачи. Сперва идут очереди по папкам в порядке создания, затем внутри папки очереди сортируются по дате начала спринта. Очередь Backlog всегда идет первой.
Очистка фильтров
Для того, чтобы очистить все фильтры, нажмите кнопку Очистить на панели фильтров в выбранном представлении.
Все фильтры будут сброшены без дополнительного подтверждения.
Кнопка Очистить отображается только в том случае, если в представлении применены какие-либо фильтры.
См. также:
Фильтрация по пользовательским атрибутам
Фильтрация задач в представлениях возможна по пользовательским атрибутам определенных форматов, в частности:
- Список;
- Тег;
- Пользователь;
- другие пользовательские атрибуты.
Рассмотрим фильтрацию по пользовательскому атрибуту на примере атрибута Список:
-
После создания пользовательского атрибута перейдите к настройке фильтров.
-
В меню настройки фильтров проставьте отметку напротив параметра Список.
-
После того, как в представлении задач отобразится фильтр Список, следуйте указаниям из разделов Фильтрация задач и Настройка фильтров.
Фильтрация по другим пользовательским атрибутам осуществляется аналогично.
Настройка панели фильтров
- В верхней части представления задач на панели фильтров нажмите кнопку добавления фильтра .
- В отобразившемся меню выберите атрибут, который вы хотите использовать для фильтрации.
- При необходимости повторите операцию для других атрибутов.
Для добавления фильтра по конкретным элементам портфеля:
- Добавьте фильтр по названию портфеля как указано выше.
- Нажмите на фильтр и добавьте в него нужные элементы, отметив их чекбоксами.
Выбранные фильтры будут отображены в любом типе представления задач для папки или очереди.
Для сложной фильтрации используйте функцию Сложный фильтр.
Сложные фильтры
TeamStorm позволяет пользователям комбинировать несколько фильтров и создавать сложный фильтр с использованием логических операторов.
Такие фильтры позволяют быстрее находить нужные задачи, фильтруя их по более сложным критериям.
Создание сложного фильтра
- В верхней части представления задач на панели фильтров нажмите кнопку добавления фильтра .
- В открывшемся меню выберите Сложный фильтр.
- Выберите первый атрибут для фильтрации.
- Выберите оператор фильтрации (набор операторов может
отличаться в зависимости от выбранного фильтра):
- Равен — будут отображены задачи со значениями, равными выбранным ;
- Не равен — будут отображены все задачи, кроме задач с выбранными значениями;
- Заполнен — будут отображены задачи, у которых выбранный атрибут заполнен любым значением;
- Не заполнен — будут отображены задачи, у которых выбранный атрибут не заполнен каким-либо значением;
- Любой из указанных — будут отображены задачи, у которых атрибут соответствует любой из выбранных опций;
- Все из указанных — будут отображены задачи, у которых опции атрибута включает все выбранные опции;
- Ни один из указанных — будут отображены задачи, у которых опции атрибута не соответствуют хотя бы одной из выбранных опций;
- Не равно всем указанным — будут отображены задачи, у которых опции атрибута не соответствуют всем выбранным опциям.
- Выберите значение атрибута.
- При необходимости замените название фильтра (по умолчанию — Сложный фильтр).
- Нажмите кнопку Условие под полем с атрибутом первого фильтра и выберите Правило или Группа правил, в зависимости от того, насколько разветвленное дополнительное условие вы хотите добавить.
- Выберите атрибут следующего условия.
- При необходимости измените логический оператор связи между условиями:
- И — будут выполняться все связанные этим оператором условия;
- Или — будет выполняться то из условий, которое является истинным.
- Добавьте столько условий, сколько вам необходимо.
- Нажмите кнопку Условие под первой группой условий и повторите шаги 3 — 10, если необходимо создать еще одну группу условий.
- Установите связь между группами условий при помощи логических операторов И/Или.
Условия в сложных фильтрах можно удалять при помощи кнопки .
Редактирование сложного фильтра
- В панели фильтров найдите нужный сложный фильтр и нажмите кнопку рядом с ним.
- Отредактируйте фильтр, как описано выше.
Скрытие сложного фильтра
- В панели фильтров найдите нужный сложный фильтр и нажмите кнопку рядом с ним.
- Нажмите Скрыть в правой части отобразившегося меню.
Фильтр будет скрыт, но не удален.
Возврат сложного фильтра на панель
- В верхней части представления задач на панели фильтров нажмите кнопку добавления фильтра .
- В отобразившемся меню нажмите на название нужного фильтра в блоке Сложные фильтры. Блок появляется в том случае, если были добавлены сложные фильтры.
Фильтр будет добавлен на панель и активирован.
Удаление сложного фильтра
- В верхней части представления задач на панели фильтров нажмите кнопку добавления фильтра .
- В отобразившемся меню нажмите кнопку напротив названия фильтра, который вы хотите удалить в блоке Сложные фильтры.
Фильтр будет удален без дополнительных подтверждений.
Ended: Фильтрация задач
Поиск задачи
Поиск из представления
В представлении задач выбранной папки или очереди начните вводить название или буквенно-числовой идентификатор задачи в поле ввода в представлении.
Результаты поиска будут динамически отображаться в представлении.
Поиск на главной странице
- На Главной странице начните вводить название или идентификатор задачи в поле поиска в правой верхней части экрана.
- Выберите задачу из отобразившегося списка.
Полнотекстовый поиск
Для поиска по текстам описаний задач:
- Введите искомый текст в поле ввода в верхней части экрана.
- Выберите Задачи.
Результаты поиска будут отображены в виде раскрывающегося списка под полем ввода.
Ended: Фильтрация и поиск
Создание задачи
TeamStorm позволяет создавать новые задачи и дублировать существующие.
Создание новой задачи
- Перейдите в папку, в которой требуется создать новую задачу.
- На открывшейся странице нажмите кнопку Задача.
- В открывшемся окне заполните поля:
- Название (обязательно);
- Тип;
- Ответственный;
- Дата начала
- Дата выполнения.
- Описание;
- Добавьте вложение (опционально);
- Нажмите Создать.
В поле Описание можно использовать инструменты вставки и форматирования контента.
Идентификатор задачи
При создании каждой задачи ей присваивается уникальный идентификатор (ID), который состоит из двух частей:
- префикса, совпадающего с ключом пространства, в котором создана задача;
- порядкового номера задачи в пространстве.
Порядковый номер удаленных задач не переиспользуется.
Пример
Идентификатор задачи TS-45
означает, что задача создана в пространстве TeamStorm с ключом TS
сорок пятой по счету в этом пространстве.
Дублирование задачи
Для быстрого создания задач можно использовать дублирование задачи:
- Перейдите в карточку задачи, которую нужно дублировать.
- Нажмите и выберите Дублировать.
В папке с исходной задачей будет создана новая задача с названием вида:
Копия \[название исходной задачи]
Дублированная задача будет содержать те же атрибуты и вложения, что и исходная. Автором задачи будет назначен тот, кто дублировал задачу. Ответственный не назначается. Автоматически устанавливается связь с исходной задачей.
Карточка задачи
В TeamStorm информация о задачах отображается в карточке задачи.
Карточка задачи может иметь обычный или полноэкранный вид.
Карточка задачи — это открывающаяся в правой части экрана панель, которая отображается при выборе задачи в Представлении задач.
Карточка содержит:
- Панель кнопок управления карточкой в верхней части.
- Блок информации, содержащий изменяемые элементы:
- Название задачи;
- Статус;
- Ответственный;
- Дата начала;
- Дата выполнения;
- Виджет расчета прогресса и кнопку для его настройки.
- Блок Оценка (может отсутствовать, настраивается на уровне типа задачи);
- Блок Учет времени (может отсутствовать, настраивается на уровне типа задачи).
- Блок Описание.
- Блок Подзадачи.
- Блок Связанные задачи.
- Блок Связанные страницы.
- Блок Запросы на слияние (отображается при настроенной интеграции с GitLab или другим провайдером и установлении связи задачи с соответствующей сущностью провайдера).
- Блок Файлы.
- Блок комментариев и истории изменений.
В левой верхней части карточки задачи отображается путь к карточке — название папки, в которой находится задача и дочерних папок при их наличии. Названия являются активными ссылками, по щелчку на них можно перейти в соответствующие папки.
Под путем к карточке отображены коллекции (спринты, портфели), в которые входит задача.
Иконка коллекции является кнопкой, которая открывает меню, позволяющее управлять вхождением задачи в коллекцию и переходить в эту коллекцию.
Внимание
Не следует путать карточку задачи и карточку в представлении Таблица.
Полноэкранная карточка задачи
Полноэкранная карточка задачи содержит те же элементы, что и карточка задачи, открывающаяся в боковой панели.
Для перехода в полноэкранную карточку задачи:
- Перейдите в карточку задачи.
-
Нажмите кнопку перехода в полноэкранный режим.
Полноэкранная карточка будет открыта в новом окне браузера.
В левой верхней части карточки задачи отображается путь к карточке — название папки, в которой находится задача и дочерних папок при их наличии. Названия являются активными ссылками, по щелчку на них можно перейти в соответствующие папки.
При нажатии на ссылку папка откроется в этом же окне.
Ссылка на задачу открывает полноэкранную карточку.
Редактирование задачи ↵
Редактирование задачи
- Откройте представление задач в выбранной папке.
- Нажмите на нужную задачу.
- В открывшейся справа карточке задачи измените:
- название задачи;
- ответственного;
- статус;
- даты начала и выполнения;
- очередь или портфель (кнопки с названием коллекций отображаются сверху от названия задачи, если задача добавлена в какую-либо из коллекций);
- оценку времени выполнения (в часах или сторипоинтах);
- учет затраченного времени.
- При необходимости отредактируйте описание задачи, связанные задачи, добавьте или удалите вложения, добавьте или удалите комментарий.
- Закройте карточку, нажав в правом верхнем углу панели.
Внимание
Поля для оценки времени выполнения и учета затраченного времени могут отсутствовать. Настройка этих полей производится на уровне типа задачи.
При редактировании поля Описание можно использовать инструменты вставки и форматирования контента.
В представлении типа «Таблица» есть возможность редактировать часть параметров непосредственно в представлении, не переходя в панель редактирования.
Для этого:
- Выберите строку с нужной задачей и столбец с атрибутом, который необходимо отредактировать.
- Нажмите на выбранный атрибут и измените его при помощи отобразившегося меню.
В представлении типа «Доска» есть возможность изменять ответственного за выполнение задачи.
Для этого:
- Выберите на доске карточку задачи и в ней нажмите на значок с инициалами ответственного;
- В отобразившемся меню выберите ответственного.
См. также:
Изменение статуса задачи
Изменение статуса задачи необходимо для отслеживания прогресса выполнения задачи.
Все статусы относятся к четырем основными категориям:
- НОВОЕ — задачи, которые требуется выполнить, выделяется темно-серым цветом;
- В РАБОТЕ — задачи, которые находятся в процессе выполнения, выделяются синим цветом;
- ВЫПОЛНЕНО — завершенные задачи, выделяются зеленым цветом;
-
ОТМЕНЕНО — отмененные задачи, выделяются красным цветом.
Пользователи с правами на редактирование пространства и управление процессами могут создавать пользовательские статусы в рамках настройки рабочего процесса, тем не менее, созданные статусы будут относиться к описанным выше категориям.
Изменение статуса
Для изменения статуса в карточке задачи или в одном из представлений нажмите на название текущего статуса и выберите новый статус из списка.
При переводе задачи в статус В РАБОТЕ для задачи автоматически создается атрибут Дата начала и в карточке задачи отображается поле Дата начала, которое автоматически заполняется значениями с текущими датой и временем.
При переводе задачи в статус ВЫПОЛНЕНО или ОТМЕНЕНО для задачи создается атрибут Дата завершения, который автоматически заполняется значениями с текущими датой и временем.
При наведении на название статуса отображается дата и время завершения задачи.
При переводе задачи из статусов ВЫПОЛНЕНО или ОТМЕНЕНО в НОВОЕ или В РАБОТЕ дата завершения скрывается и соответствующий атрибут удаляется.
Изменение статуса задачи доступно как из карточки задачи, так и из представления Таблица, если в нем присутствует столбец с атрибутом Статус.
Ограничение на изменение статуса
Администратором пространства или другим пользователем с разрешением на управление процессами может быть установлено правило, запрещающее определенный переход между статусами до достижения каких-либо условий.
В этом случае при попытке сменить статус пользователю отображается уведомление Невозможно выбрать статус с указанием причин. Список причин может быть свернут, в этом случает в блоке уведомления нажмите Показать причины.
Изменение типа задачи
- Откройте карточку задачи, тип которой вы хотите изменить.
- Нажмите кнопку в правом верхнем углу карточки и выберите Изменить тип.
- В открывшемся окне выберите из списка новый тип задачи.
- Нажмите Сохранить.
Тип задачи будет изменен во всех представлениях.
В историю изменений задачи добавятся события:
- изменение типа (прошлое значение, новое значение);
- изменение статуса;
- запись об удалении атрибутов старого типа при условии их отсутствия в новом типе.
Смена процесса для задачи
- Откройте карточку задачи, тип которой вы хотите изменить.
- Нажмите кнопку в правом верхнем углу карточки и выберите Сменить процесс.
- В открывшемся окне:
- выберите из списка новый процесс;
- выберите новый статус.
- Нажмите Сохранить.
Процесс и статус для задачи будут изменены во всех представлениях.
В историю изменений задачи добавится изменение статуса.
Примечание
Изменение процесса для задачи доступно пользователю с выданным [разрешением] (../../workspaces/access-roles/add-and-setup.md) Изменение статуса вне правил процесса.
Добавление задачи в очередь и удаление задачи из очереди
Если для папки включено расширение Agile, часть задач, тем не менее, могут не относиться ни к одной из очередей.
В этом случае карточка задачи не содержит поля Спринт.
Для добавления задачи в очередь:
-
Выберите задачу в представлении.
-
Нажмите на открывшейся справа панели (карточке задачи).
-
В отобразившемся меню выберите Добавить в спринт.
-
В открывшемся модальном окне выберите нужный спринт.
В карточке задачи отобразится поле Спринт, содержащее название выбранного спринта.
Для удаления задачи из очереди нажмите в поле Спринт в карточке задачи.
Задача будет удалена из очереди и поле Спринт будет скрыто из карточки задачи.
Настройка типа оценки и учета времени
TeamStorm позволяет изменять тип оценки задачи (время или сторипоинты) и скрывать или отображать виджет учета времени непосредственно на карточке задачи.
Таким образом пользователь может не пересоздавать задачи, если подход к их оценке изменился.
Настройка доступна пользователю с разрешением Управление атрибутами.
Настройка типа оценки
- Откройте карточку задачи.
- Нажмите кнопку
- В отобразившемся меню настройте тип оценки, выбрав нужные из вариантов:
- Добавить оценку в сторипоинтах;
- Убрать оценку в сторипоинтах;
- Добавить оценку в часах;
- Убрать оценку в часах.
Варианты, отображаемые в меню, зависят от того, какой тип оценки для задачи был выбран ранее или задан по умолчанию в настройках типа.
На карточке задачи будут отображены или удалены выбранные при настройке поля.
При отключении определенного типа оценки данные удаляются, при повторном включении поля не будут заполнены.
Изменение типа оценки влияет на учет задачи в статистике и на диаграмме сгорания.
Настройка учета времени
- Откройте карточку задачи.
- Нажмите кнопку
- В отобразившемся меню настройте отображение виджета, выбрав из вариантов:
- Скрыть учет времени;
- Показать учет времени.
На карточке задачи будет крыт или отображен виджет учета времени.
При скрытии виджета учета времени списанное ранее время сохраняется в базе и отображается в личных списаниях и отчете по трудозатратам. При показе виджета учета времени списанное время снова отображается на виджете и в окне списания на карточке задачи.
Ended: Редактирование задачи
Массовые действия с задачами ↵
Массовые действия с задачами
TeamStorm позволяет совершать массовые действия с задачами. Массовые действия с задачами помогают сократить время на рутинные операции.
Пользователь может выбирать несколько задач в представлении Таблица1, предварительно отфильтровав список, а затем совершить с выбранными задачами следующие типы действий:
- перемещать в другое расположение;
- добавлять как подзадачи в выбранную задачу;
- изменять или назначать атрибуты:
- ответственный;
- тег;
- пользователь
- изменять спринт;
- назначать элементы портфеля.
Вы можете выбрать задачи для массовых действий с помощью отметок слева от списка задач в таблице, а затем осуществить нужное действие на автоматически открывшейся панели справа.
Подробнее массовые действия с задачами описаны в подразделах:
- Массовое перемещение задач
- Массовое добавление подзадач
- Массовое изменение атрибутов
- Массовое изменение спринта
- Массовое назначение элементов портфеля
-
Работает в папках, спринтах, запросах и элементах портфеля. ↩
Массовое перемещение задач
- Откройте представление задач Таблица в выбранном расположении.
- При необходимости примените к списку задач фильтры.
- Выберите задачи, которые вы хотите переместить, при помощи отметок слева от названия задач. Если нужно выбрать все задачи, поставьте отметку в левом верхнем углу в шапке таблицы.
- На раскрывшейся справа панели нажмите Переместить.
- В поле ввода Выберите расположение начните вводить название папки, в которую необходимо переместить задачи.
- Выберите папку из раскрывшегося списка.
- Нажмите Переместить.
Вместе с выбранными задачами будут перемещены их подзадачи.
За одно перемещение можно переместить не более 2000 задач.
Массовое добавление подзадач
- Откройте представление задач Таблица в выбранном расположении.
- При необходимости примените к списку задач фильтры.
- Выберите задачи, которые вы хотите добавить как подзадачи, при помощи отметок слева от названия задач. Если нужно выделить все задачи списка, поставьте отметку в левом верхнем углу в шапке таблицы.
- В раскрывшейся справа панели нажмите Добавить как подзадачи.
- В поле ввода Выберите задачу начните вводить название задачи, в которую необходимо добавить подзадачи.
- Выберите задачу из раскрывшегося списка.
- Нажмите Добавить.
Задачи будут добавлены как подзадачи к выбранной родительской задаче. Вместе с выбранными задачами будут также перенесены их подзадачи.
Массовое изменение атрибутов
Массовое назначение ответственного
- Откройте представление задач Таблица в выбранном расположении.
- При необходимости примените к списку задач фильтры.
- Выберите задачи, которым вы хотите назначить ответственного, при помощи отметок слева от названия задач. Если нужно выбрать все задачи, отметьте чекбокс в шапке таблицы.
- На раскрывшейся справа панели нажмите Изменение атрибутов.
- Выберите атрибут Ответственный из раскрывающегося списка.
- Выберите пользователя из отобразившегося списка.
- Нажмите Применить.
Ответственный будет назначен для всех выбранных задач. Если для каких-то задач уже были ранее назначены ответственные, они изменятся на выбранного пользователя.
Для того, чтобы изменения отобразились, обновите страницу.
Массовое изменение тегов
- Откройте представление задач Таблица в выбранном расположении.
- При необходимости примените к списку задач фильтры.
- Выберите задачи, у которых вы хотите изменить теги, при помощи отметок слева от названия задач. Если нужно выбрать все задачи, поставьте отметку в левом верхнем углу в шапке таблицы.
- На раскрывшейся справа панели нажмите Изменение атрибутов.
- Выберите пользовательский атрибут Тег из раскрывающегося списка.
- Выберите из отобразившегося списка действие, которое нужно совершить:
- Добавить — добавляет новые теги к текущим у выбранных задач;
- Заменить все — заменяет все теги у выбранных задач на указанные;
- Удалить — удаляет все указанные теги у выбранных задач;
- Удалить все — удаляет все теги у выбранных задач.
- Выберите из отобразившегося списка один или несколько тегов, к которым будет применено выбранное на предыдущем шаге действие. Не применяется, если на предыдущем шаге выбрано действие Удалить все.
- Нажмите Применить.
Атрибут Тег будет изменен у всех выбранных задач.
Для того, чтобы изменения отобразились, обновите страницу.
Массовое изменение атрибута Пользователь
- Откройте представление задач Таблица в выбранном расположении.
- При необходимости примените к списку задач фильтры.
- Выберите задачи, у которых вы хотите изменить атрибут Пользователь, при помощи отметок слева от названия задач. Если нужно выбрать все задачи, поставьте отметку в левом верхнем углу в шапке таблицы.
- На раскрывшейся справа панели нажмите Изменение атрибутов.
- Выберите пользовательский атрибут Пользователь из раскрывающегося списка.
- Выберите из отобразившегося списка пользователя.
- Нажмите Применить.
Атрибут Пользователь будет изменен у всех выбранных задач.
Для того, чтобы изменения отобразились, обновите страницу.
Массовое изменение спринта
- Откройте представление задач Таблица в выбранном расположении..
- При необходимости примените к списку задач фильтры.
- Выберите задачи, которые вы хотите переместить, при помощи отметок слева от названия задач. Если нужно выбрать все задачи, поставьте отметку в левом верхнем углу в шапке таблицы.
- В раскрывшейся справа панели нажмите Изменить спринт.
- Выберите нужный спринт или бэклог из раскрывающегося списка.
- Нажмите:
- Добавить — задачи будут добавлены в указанную очередь;
- Убрать спринт — у задач будет убран признак выбранного спринта и они будут доступны в корне соответствующей папки.
Задачи будут перенесены в выбранный спринт или удалены из выбранного спринта.
Вместе с выбранными задачами спринт будет назначен их подзадачам, кроме тех, которые находятся в статус категории ВЫПОЛНЕНО и ОТМЕНЕНО.
Для того, чтобы изменения отобразились, обновите страницу.
За одно действие можно перенести не более 2000 задач в выбранный спринт или бэклог.
Массовое назначение элементов портфеля
- Откройте представление задач Таблица в выбранном расположении.
- При необходимости примените к списку задач фильтры.
- Выберите задачи, которым вы хотите назначить элементы портфеля, при помощи отметок слева от названия задач. Если нужно выделить все задачи списка, поставьте отметку в левом верхнем углу в шапке таблицы.
- В раскрывшейся справа панели нажмите Назначить элементы портфеля.
- В меню Выберите элементы портфеля отметьте один или несколько элементов портфеля,
- Нажмите:
- Назначить — задачи будут добавлены в выбранные элементы портфеля;
- Убрать элементы — у задач будет снят признак вхождения в выбранные элементы портфеля.
Выбранные задачи будут добавлены в выбранные элементы портфеля или удалены из элементов портфеля.
Для того, чтобы изменения отобразились, обновите страницу.
Примечание
Если в списке элементов портфеля есть элементы с одинаковым названием, обратите внимание на путь к элементу, указанный под ним. Путь содержит название папки и название того портфеля, в которых содержится элемент.
Ended: Массовые действия с задачами
Добавление подзадач
Добавление подзадач из карточки задачи
- Откройте представление задач в выбранной папке.
- Нажмите на нужную задачу.
-
В открывшейся справа панели в блоке ПОДЗАДАЧИ нажмите Добавить.
-
В открывшемся окне выберите Создать или Выбрать из существующих.
Если выбрана вкладка Создать:
- Заполните поля:
- Название (обязательно);
- Тип;
- Ответственный;
- Дата начала;
- Дата выполнения;
- Описание.
- Добавьте вложение (опционально).
- Нажмите кнопку Создать.
Если выбрана вкладка Выбрать из существующих:
- В открывшемся окне переведите курсор в поле ввода и начните вводить название ранее созданной задачи.
- Выберите нужную задачу из раскрывшегося списка и нажмите на неё.
В блоке ПОДЗАДАЧИ отобразятся добавленные подзадачи.
Массовое добавление подзадач
Массовое добавление подзадач описано в разделе Массовые действия.
Работа с файлами вложений
TeamStorm позволяет добавлять к задачам файлы различного формата и поддерживает управление версиями таких файлов.
Добавление вложения
- Перейдите в карточку задачи.
- На карточке задачи в блоке ВЛОЖЕНИЯ нажмите Загрузить файлы.
- В открывшемся системном окне перейдите в папку с нужным файлом, выберите файл и подтвердите выбор.
В блоке ВЛОЖЕНИЯ отобразится добавленный файл вложения.
Файлы изображений отображаются в блоке в виде графического превью. Другие файлы отображаются как превью в виде иконки, содержащей название и расширение файла.
Справа от превью или иконки находится информационный блок, содержащий:
- название файла;
- дату и время загрузки файла;
- размер файла;
- имя пользователя, добавившего файл.
Под информационным блоком находятся кнопки управления версиями:
Добавить версию
;Все версии
.
Удаление вложения
- Перейдите в карточку задачи.
- На карточке задачи в блоке ВЛОЖЕНИЯ найдите нужное вложение и нажмите кнопку справа от его названия.
- В открывшемся окне нажмите Да, я хочу удалить файл.
- Вложение, вместе со всеми его версиями, будет безвозвратно удалено.
Выгрузка вложения
- Перейдите в карточку задачи.
- На карточке задачи в блоке ВЛОЖЕНИЯ найдите нужное вложение и нажмите кнопку справа от его названия.
- Будет загружена текущая (последняя по времени добавления) версия файла вложения.
Работа с версиями вложения
Добавление версии
- В блоке ВЛОЖЕНИЯ в карточке задачи найдите вложение, к которому вы хотите добавить файл с другой версией,
и нажмите
Добавить версию
снизу от информационного блока. - В открывшемся системном окне перейдите в папку с нужным файлом, выберите файл и подтвердите выбор.
Добавленная версия вложения станет текущей и информация о файле отобразится на превью и в информационном блоке.
Просмотреть все версии вложения можно, нажав кнопку Все версии
.
Управление версиями
Нажмите Все версии под информационным блоком нужного вложения, чтобы раскрыть список всех версий.
В раскрывшемся списке версий содержатся записи с информацией о каждом файле:
- название файла;
- название версии (Текущая версия, Версия 1, Версия 2 и т.д.)
- дата и время загрузки;
- размер файла;
- имя пользователя, добавившего файл.
Чтобы выгрузить файл нужной версии, найдите нужную запись в списке версий, далее действуйте как описано в подразделе Выгрузка вложения.
Чтобы удалить файл нужной версии, найдите нужную запись в списке версий, далее действуйте как описано в подразделе Удаление вложения.
Учет трудозатрат
Для команд, которые используют при организации своей работы списание трудозатрат в часах, на карточке задачи предусмотрен блок Учет времени.
Блок Учет времени включается при настройке типов задач на уровне пространства.
Списание трудозатрат
-
Перейдите к блоку УЧЕТ ВРЕМЕНИ на карточке задачи и нажмите на виджет списания времени.
-
В открывшемся окне введите:
- затраченное на выполнение задачи время;
- дату и время списания;
- комментарий (например, подтверждение выполненной работы).
- Нажмите Сохранить.
Примечание
По умолчанию устанавливаются текущие дата и время списания в часовом поясе пользователя.
Редактирование списания
- Перейдите к блоку УЧЕТ ВРЕМЕНИ на карточке задачи и нажмите на виджет списания времени.
- В открывшемся окне найдите списание, которые вы хотите изменить.
- Измените данные в полях ввода и щелкните в любом месте в пределах окна редактирования.
- Закройте окно или перейдите к редактированию следующего списания
Примечание
Поле Комментарий доступно для редактирования только пользователю, который добавил списание.
Удаление списания
- Перейдите к блоку УЧЕТ ВРЕМЕНИ на карточке задачи и нажмите на виджет списания времени.
- В открывшемся окне найдите списание, которые вы хотите изменить и нажмите в правой части строки со списанием.
- Нажмите Удалить.
Списание будет удалено без дополнительных подтверждений.
Прогресс выполнения задачи
В TeamStorm встроено решение по постановке и мониторингу целей и ключевых результатов (методология OKR — Objectives and Key Results).
В качестве основного инструмента методологии используется расчет прогресса задачи.
TeamStorm позволяет рассчитывать прогресс выполнения задачи тремя способами:
- по статусу;
- по прогрессу подзадач;
- по метрике.
Отслеживать прогресс выполнения задачи можно в карточке задачи или в столбце Прогресс в представлении задач «Таблица».
Для этого выберите атрибут Прогресс в настройках представления.
Расчет прогресса по статусу
Прогресс выполнения задачи по статусу содержит только два значения:
- 0% — для любых категорий статусов кроме Выполнено;
- 100% — для категории статусов Выполнено.
Расчет прогресса по статусу включается по умолчанию при активации расчета прогресса в карточке задачи.
Расчет прогресса по прогрессу подзадач
При выборе механизма расчета по прогрессу подзадач прогресс родительской задачи равен среднему арифметическому прогрессов подзадач.
Дочерние задачи в статусе категории Отменено не учитываются при расчете прогресса родительской задачи, при этом прогресс родительской задачи, переведенной в статус категории Отменено, сохраняется.
Если у задачи нет подзадач, то прогресс устанавливается со значением 0%.
Расчет прогресса по метрике
Расчет прогресса по метрике подразумевает, что пользователь задает стартовое и целевое значение, а затем в ходе работы над задачей редактирует текущее значение.
При изменении текущего значения система пересчитывает прогресс по формуле:
Включение и настройка расчета прогресса в карточке задачи
Метод расчета прогресса, который по умолчанию будет отображаться на карточке задачи, задается при настройке типа задач в настройках пространства.
Для включения расчета прогресса:
-
Перейти в карточку задачи, для которой требуется включить расчет прогресса.
-
Нажать кнопку в правом верхнем углу карточки и выбрать Включить расчет прогресса.
В карточке задачи отобразится виджет с отображением прогресса
Для настройки расчета прогресса:
- Нажмите кнопку настроек на виджете.
- Выберите из выпадающего списка механизм расчета прогресса.
- В случае выбора расчета по метрике введите название метрики (опционально), стартовое и целевое значения.
-
Нажмите Применить.
Для выключения расчета прогресса:
- Нажмите кнопку настроек на виджете.
- Выберите из выпадающего списка Не рассчитывать.
- Нажмите Применить.
Виджет будет скрыт из карточки задачи.
Изменение текущего значения прогресса при расчете по метрике
- Перейдите в карточку задачи или в представление «Таблица» с включенным столбцом Прогресс.
- Нажмите на отображение прогресса .
- В открывшемся виджете введите новое значение и комментарий (опционально).
-
Нажмите Обновить.
Изменение прогресса отражается в истории изменений в карточке задачи.
Добавление и удаление связей
Добавление связи между задачами
- Откройте карточку задачи.
- В открывшейся справа карточке задачи в блоке
СВЯЗАННЫЕ ЗАДАЧИ нажмите
+ Добавить
- В отобразившемся поле начните вводить название задачи, которую нужно связать с текущей.
- Выберите тип связи задач из списка слева от поля ввода:
- Связана (по умолчанию);
- Дублирует;
- Блокирует;
- Заблокирована.
- Нажмите кнопку подтверждения
В блоке СВЯЗАННЫЕ ЗАДАЧИ отобразятся связанные задачи, сгруппированные по типу связи.
Каждая запись содержит:
- идентификатор связанной задачи;
- название связанной задачи;
- статус связанной задачи;
- ответственного за исполнение связанной задачи.
Пользователь может перейти к связанной задаче, нажав на ее название или идентификатор.
Вы можете изменять статус и ответственного у связанной задачи непосредственно из записи, нажав на соответствующие элементы.
Примечание
Связывание задач доступно в том числе для задач из разных пространств. Для связывания задач из разных пространств пользователю необходимо иметь доступ в те пространства, задачи из которых требуется связать друг с другом.
Удаление связи между задачами
- Перейдите к блоку СВЯЗАННЫЕ ЗАДАЧИ в карточке задачи.
- Справа от названия задачи, связь с которой требуется удалить, нажмите .
- Нажмите Удалить связь.
Связь будет удалена и связанная задача перестанет отображаться в блоке СВЯЗАННЫЕ ЗАДАЧИ.
Добавление связи задачи со страницей
- Откройте карточку задачи.
- В открывшейся справа карточке задачи в блоке
СВЯЗАННЫЕ СТРАНИЦЫ нажмите
+ Добавить
- В отобразившемся поле начните вводить название страницы, которую нужно связать с задачей.
- Нажмите кнопку подтверждения
В блоке СВЯЗАННЫЕ СТРАНИЦЫ отобразятся связанные страницы.
Каждая запись содержит название страницы и префикс пространства, к которому эта страница принадлежит.
Пользователь может перейти к связанной задаче, нажав на ее название.
Примечание
Связывание задачи и страниц доступно в том числе для страниц из других пространств. Для связывания страниц из других пространств пользователю необходимо иметь доступ в те пространства, в которых находятся эти страницы.
Удаление связи между задачей и страницей
- Перейдите к блоку СВЯЗАННЫЕ СТРАНИЦЫ в карточке задачи.
- Справа от названия задачи, связь с которой требуется удалить, нажмите .
- Нажмите Удалить связь.
Связь будет удалена и связанная страница перестанет отображаться в блоке СВЯЗАННЫЕ СТРАНИЦЫ.
Комментарии к задачам
Добавление комментария к задаче
- Откройте карточку задачи.
- В блоке комментариев и истории изменения атрибутов в нижней части карточки перейдите на вкладку Комментарии (если в данный момент выбрана вкладка История).
- В поле ввода Добавить комментарий введите новый комментарий. При необходимости воспользуйтесь инструментами вставки и форматирования контента.
- Нажмите Отправить.
Комментарий будет добавлен и отобразится на вкладке Комментарии.
Редактирование комментария
- Нажмите кнопку справа от комментария, который вы хотите отредактировать, и выберите Редактировать.
- Отредактируйте комментарий в открывшемся поле и нажмите Отправить.
Редактирование комментария доступно в течение часа после его создания.
Настройка видимости комментария
-
В окне ввода комментария нажмите кнопку настройки видимости. По умолчанию все комментарии находятся в статусе Виден всем.
-
В открывшемся окне выберите настройку:
Виден всем
;Виден только пользователям пространства
;Виден определенным пользователям
;Виден всем, кроме определенных пользователей
.
-
Если выбрана настройка Виден определенным пользователям или Виден всем, кроме определенных пользователей, то в поле Пользователи выберите из списка тех пользователей, которым вы хотите открыть или закрыть доступ к комментарию.
- Нажмите Сохранить.
Видимость комментария по умолчанию можно изменить при настройке типа задачи.
Удаление комментария
- Нажмите кнопку справа от комментария, который вы хотите отредактировать, и выберите Удалить.
- В открывшемся модальном окне нажмите Да, я хочу удалить комментарий.
Ранжирование задач
Ранжирование задач необходимо для упорядочивания списка задач в папке или очереди.
Ранжирование задач в папке или очереди выполняется в представлении типа «Доска» при помощи перетаскивания.
- Откройте представление типа «Доска» в выбранной папке или очереди.
- При помощи мыши или другого манипулятора захватите карточку задачи и перетащите ее вверх или вниз в рамках колонки статуса, в которой находится данная задача.
- Повторите для остальных задач (если необходимо).
Внимание
Ранжирование задач сохраняется для всех пользователей и на всех устройствах.
Перемещение задач
TeamStorm позволяет легко перемещать задачи между папками как по одной, так и массово.
Невозможно перемещение в следующих случаях:
- при попытке добавить задачу в завершенный спринт;
- при попытке перенести задачу в ту же локацию (папку или очередь), где она уже находится;
- при попытке перенести задачу в расширения;
- при попытке перенести задачу в корень пространства;
- при попытке переместить задачу в запрос,
В каждом из этих случаев отобразится соответствующее уведомление.
Перемещение задачи перетаскиванием
- Откройте представление задач в выбранной папке.
- Захватите задачу помощи мыши (или другого манипулятора).
- Перетащите задачу в нужную папку на навигационной панели и отпустите клавишу.
Если перемещение произошло успешно, отобразится уведомление, содержащее активные ссылки на перемещенную задачу и папку в которую произошло перемещение.
Массовое перемещение задач
Массовое перемещение задач описано в разделе Массовые действия с задачами.
Массовое добавление задач в спринт и бэклог
Массовое добавление задач в спринт и бэклог описано в разделе Массовые действия с задачами.
Просмотр истории создания и изменения задачи
- Откройте Карточку задачи.
- Перейдите в блок комментариев и истории изменения атрибутов в нижней части карточки, а затем на вкладку История.
В открывшейся вкладке отображается история создания и изменения задачи .
История создания задачи
Для истории создания указывается:
- автор создания;
- тип созданной задачи.
- дата и время создания задачи;
История изменения задачи
Для истории изменения указывается:
- автор изменения;
- атрибут, который был изменен или добавлен;
- факт изменения или добавления описания;
- дата и время изменения атрибута или описания.
История изменения прогресса
Изменения прогресса выполнения задачи по метрике также отражаются в истории изменений.
Для истории изменения прогресса указывается:
- включение расчета по метрике со значениями по умолчанию;
- ввод первичных значений: старт и цель;
- изменение прогресса, то есть предыдущее значение и текущее;
- изменение старта и/или цели;
- комментарий (при его наличии).
История изменения очереди для задачи
Для истории изменения задачи в контесте очередей расширения Agile указывается:
- факты добавления задачи в очередь, переноса в другую очередь или удаления из очереди;
- для добавления в очередь или удаления из очереди указывается наименование очереди и полный путь до нее;
- для изменения очереди указываются наименования предыдущей и новой очередей и полные пути до обеих;
- для каждого изменения указывается автор (
displayName
) и дата / время изменения (workItemModel.updateDate
).
Создание ссылки на задачу
- Откройте карточку задачи, для которой вы хотите создать ссылку.
- На открывшейся карточке задачи нажмите кнопку создания ссылки в правом верхнем углу.
Ссылка на задачу будет автоматически скопирована в буфер обмена.
По ссылке открывается полноэкранная карточка задачи.
Ended: Задачи
Запросы ↵
Работа с запросами
Запрос — это список задач, которые находятся в разных папках одного представления и объединены определенными параметрами.
Параметры, по которым задачи объединяются в запрос, определяются пользователем и настраиваются при помощи фильтров.
Запрос позволяет работать с агрегированной информацией из разных проектов и повышает удобство пользования системой.
Для запросов доступна выгрузка данных о задачах и о списаниях трудозатрат.
Подробнее работа с запросами описана в подразделах:
Создание запроса
Запрос создается на уровне папки и по умолчанию строится из задач этой папки, включая ее дочерние папки.
Добавление запроса
- Нажмите кнопку напротив названия папки, в которой требуется создать запрос и выберите Запрос.
- В открывшемся окне введите название запроса.
- Выберите из списка настройку видимости запроса:
Виден только автору
;Виден определенным пользователям
;Скрыт от определенных пользователей
;Виден всем пользователям пространства
.
- Нажмите Создать.
Откроется экран формирования запроса. Созданный пустой запрос отображается на панели навигации всем пользователям пространства в папке, в которой создан запрос.
Формирование запроса
-
Выберите расположения задач, из которых требуется сформировать запрос, при помощи фильтра Расположение.
-
Добавьте фильтры, при помощи которых будет формироваться запрос, нажав кнопку или надпись Фильтры на экране формирования запроса.
-
Настройте значения фильтров. Подробнее о фильтрах написано в разделе Фильтрация и поиск.
-
Нажмите кнопку Выполнить и сохранить.
Отобразится список задач запроса с надписью Запрос успешно выполнен и сохранен.
Перейти в созданный запрос можно из панели навигации, открыв папку, в которой он был создан.
Результаты выполненного запроса можно вставить на страницу, подробнее см. Вставка запроса на страницу
Редактирование запроса
Настройки запроса
- Нажмите кнопку в верхнем правом углу экрана или напротив названия запроса на панели навигации и выберите Настроить.
- Введите новое название запроса
- Выберите из списка настройку видимости запроса:
Виден только автору
;Виден определенным пользователям
;Скрыт от определенных пользователей
;Виден всем пользователям пространства
.
- Нажмите Сохранить.
Изменение параметров формирования запроса
-
Настройте фильтры, как описано в разделе Создание запроса.
-
Нажмите кнопку Выполнить.
-
Убедитесь в том, что результат соответствует ожидаемому и нажмите Сохранить запрос.
Удаление запроса
-
Нажать напротив названия запроса в левой части экрана и выберите Удалить.
-
В открывшемся окне нажмите Да, я хочу удалить запрос.
Ended: Запросы
Рабочие процессы ↵
Настройка рабочих процессов
В пространстве для каждого типа задачи определен процесс по умолчанию. Все процессы определены на уровне пространства и наследуются папками и задачами. Пользователь может изменять рабочий процесс для задачи, если пространство содержит несколько процессов.
При конфигурировании рабочего процесса пользователь может:
- создавать новые статусы или добавлять существующие;
- удалять статусы из процесса.
Настройка рабочих процессов подробнее описана в подразделах:
Просмотр списка процессов
- Перейдите в пространство, в котором требуется просмотреть процессы.
- Нажмите напротив названия пространства в левой части экрана, затем нажмите Настройки.
- В открывшемся окне перейдите в раздел Процессы.
На открывшейся странице будет отображен список процессов, созданных для данного пространства.
Создание процесса
- Перейдите в пространство, для которого требуется создать новый процесс.
- Нажмите напротив названия пространства в левой части экрана, затем выберите Настройки.
- На открывшемся экране настроек перейдите в раздел Процессы.
- Нажмите Создать в правом верхнем углу экрана.
- На открывшемся экране создания процесса введите название процесса в поле в верхней левой части экрана.
- Нажмите кнопку Статус в верхней части экрана и поместите начальный статус на доску.
- В открывшейся слева панели выберите готовый статус из списка или создайте новый статус.
- После добавления начального статуса на доску повторяйте шаги 6 и 7 до тех пор, пока не поместите на доску необходимое для процесса количество статусов.
- Нарисуйте переходы статусов при помощи стрелок, которые протягиваются при помощи мыши от одной карточки статуса к другой. Места, где должны начинаться и заканчиваться стрелки, выделяются на карточке статуса кружком при взятии карточки в фокус указателем.
- Нажмите Создать.
В правом верхнем углу экрана отобразится надпись Процесс сохранен.
Подробнее создание и редактирование переходов описаны в подразделе Настройка процесса.
Создание нового статуса
- Перейдите к нужному процессу или создайте новый.
- Нажмите кнопку Статус в верхней части экрана и поместите статус на доску.
- В открывшейся справа панели введите название статуса и нажмите кнопку + Создать новый.
- Выберите категорию статуса. При необходимости, отредактируйте его название.
-
Нажмите Добавить.
Статус будет создан и отобразится на доске создания процесса.
Настройка процесса
Система позволяет создавать и удалять статусы и переходы между ними в процессах, задавать начальный статус процесса и автоматизировать назначение задачи при смене статуса.
Создание нового статуса в процессе описано в подразделе Создание нового статуса.
Выбор процесса для редактирования
Система позволяет редактировать и настраивать любые процессы, добавлять статусы и создавать новые переходы между ними.
Чтобы выбрать процесс для редактирования:
- Перейдите в список процессов.
- Нажмите кнопку редактированиянапротив названия того процесса, который необходимо отредактировать.
Будет открыт экран с доской создания и редактирования процесса. На доске будут в графическом виде представлены все статусы и переходы между ними, использующиеся в выбранном процессе.
Настройка переходов между статусами
Создание перехода
- Наведите указатель мыши на статус, от которого вы хотите создать переход. На границах карточки статуса будут выделены места, от которых можно нарисовать новый переход.
- Нажмите на одно из таких мест правой кнопкой мыши и, не отпуская кнопки, ведите отобразившуюся стрелку к тому статусу, к которому необходимо создать переход.
-
Отпустите кнопку мыши после того, как конец стрелки совпадет с выделенным местом на границе карточки статуса.
Удаление перехода
Переход можно удалить двумя способами.
Способ 1:
- Нажмите на стрелку перехода на схеме процесса.
- В открывшейся справа панели нажмите кнопку в правом верхнем углу.
- Выберите Удалить.
- Нажмите Сохранить, если редактирование процесса на этом закончено.
Способ 2:
- Нажмите на схеме процесса на один из статусов, который содержит нужный переход.
- В открывшейся справа панели выберите переход, который необходимо удалить, и нажмите кнопку (Удалить).
Переход будет удален из списка переходов и из схемы процесса.
Разрешение перехода из всех статусов
- На схеме процесса нажмите на статус, для которого вы хотите разрешить переходы из всех остальных статусов.
- В открывшейся справа панели отметьте чекбокс Разрешить переход из всех статусов.
На схеме процесса отобразится блок ВСЕ и стрелка перехода от него к выбранному процессу.
В выбранный статус можно будет перейти из всех остальных статусов процесса.
Выбор начального статуса
- На схеме процесса нажмите на статус, который вы хотите сделать начальным.
- В открывшейся справа панели отметьте чекбокс Начальный статус.
После назначения статуса начальным снять отметку будет невозможно. Можно только сделать начальным другой статус в процессе.
Автоматизация при переходах
Управление автоматизацией доступно пользователям, которым выдано соответствующее разрешение на уровне пространства.
Назначение задачи при переходе
- Нажмите на стрелку перехода на схеме процесса.
- В открывшейся слева панели на вкладке Автоматизация выберите При переходе задача будет назначена на:
- Раскройте список пользователей и выберите пользователя, на которого при переходе будет автоматически назначена задача.
- Закройте панель, нажав в правом верхнем углу и нажмите Сохранить.
Заполнение атрибутов при переходе
- Нажмите на стрелку перехода на схеме процесса.
- В открывшейся слева панели на вкладке Автоматизация выберите При переходе будут назначены атрибуты:
- Нажмите Добавить атрибут.
- Выберите атрибуты из списка или воспользуйтесь полем ввода для поиска нужного атрибута, затем отметьте выбранные атрибуты в чекбоксах.
- Выберите или введите значения атрибутов. Например: для атрибута типа Пользователь выберите из списка нужных пользователей.
- Выберите дополнительные правила. Например: для атрибута типа Дата дополнительное время, которое будет добавлено к текущей дате при переходе (опционально).
- Закройте панель, нажав в правом верхнем углу и нажмите Сохранить.
Настройка правил при переходах
Настройка правил при переходах доступна пользователям, которым выдано соответствующее разрешение на уровне пространства.
Ограничение на смену статуса по заполнению атрибута
Переход между любыми статусами можно запретить, если в карточке задачи не будут заполнены определенные атрибуты.
Для настройки правила:
- Нажмите на стрелку перехода на схеме процесса.
- В открывшейся слева панели на вкладке Правила выберите Разрешено переводить если заполнены атрибуты.
- Раскройте список атрибутов и отметьте чекбоксами нужные атрибуты.
- Закройте панель, нажав в правом верхнем углу и нажмите Сохранить.
Переход, для которого установлено ограничение, будет отмечен на схеме значком .
Удаление статуса из процесса
- Перейдите к нужному процессу.
- Нажмите на нужный процесс из списка.
- В открывшемся окне выберите статус, который хотите удалить и кликните на него правой кнопкой мыши.
-
Нажмите Удалить из процесса.
Удаление процесса
- Перейдите в список процессов.
- Нажмите кнопку удаления напротив названия того процесса, который необходимо удалить.
- В открывшемся модальном окне нажмите Да, я хочу удалить процесс.
Будет удален процесс и все связанные с ними статусы.
Невозможно удалить процесс, который в системе связан с какими-либо типами задач. В этом случае будет отображено окно с соответствующим предупреждением.
Ended: Рабочие процессы
Интеграции ↵
Интеграции
TeamStorm позволяет настраивать интеграции с другими продуктами управления разработкой и тестированием.
Подробнее о интеграциях:
GitLab ↵
Интеграция с GitLab
Интеграция с GitLab создается и настраивается на уровне пространства.
Для одного пространства возможно только одно подключение.
Интеграция пространства с GitLab
-
Перейдите в настройки пространства и нажмите Интеграции на панели слева.
-
Нажмите на строку GitLab в таблице интеграций.
-
На открывшейся панели нажмите Сгенерировать токен.
-
Следуйте указаниям в документации GitLab.
Для создания нового токена снова нажмите кнопку редактирования , затем в открывшейся панели нажмите Сгенерировать новый токен.
Удаление интеграции
-
Перейдите в настройки пространства и нажмите Интеграции на панели слева.
-
Нажмите кнопку удаления в правой части строки GitLab в таблице интеграций.
-
В открывшемся модальном окне нажмите Да, я хочу удалить интеграцию.
Интеграция будет удалена. Созданные ранее запросы на слияние останутся доступными, но обновления не будут выполняться.
Особенности интеграции запросов на слияние описаны в подразделе Запросы на слияние
Запросы на слияние
В случае если настроена интеграция с GitLab и системой, а описание и/или заголовок запроса на слияние (Merge Request) в GitLab содержит номер задачи, то системой будет успешно разобрано сообщение о создании, изменении или решении запроса на слияние и будет сформирован список связей задачи с соответствующей сущностью в GitLab.
При наличии связей в карточке задачи отображается блок Запрос на слияние. В секции отображается список запросов с типом провайдера, именем запроса, его номером и статусом. На соответствующую сущность можно перейти, нажав на ее название в блоке .
Информация о запросах отсортирована по дате создания запроса сверху вниз от новых к старым.
В запросе на слияние в GitLab отображается номер задачи в TeamStorm.
Ended: GitLab
GitFlic ↵
Интеграция с GitFlic
Интеграция с GitFlic создается и настраивается на уровне пространства.
Для одного пространства возможно только одно подключение.
Интеграция пространства с GitFlic
-
Перейдите в настройки пространства и нажмите Интеграции на панели слева.
-
Нажмите на строку GitFlic в таблице интеграций.
-
На открывшейся панели нажмите Сгенерировать токен.
-
Следуйте указаниям в документации GitFlic.
Для создания нового токена снова нажмите кнопку редактирования , затем в открывшейся панели нажмите Сгенерировать новый токен.
Удаление интеграции
-
Перейдите в настройки пространства и нажмите Интеграции на панели слева.
-
Нажмите кнопку удаления в правой части строки GitFlic в таблице интеграций.
-
В открывшемся модальном окне нажмите Да, я хочу удалить интеграцию.
Интеграция будет удалена. Созданные ранее запросы на слияние останутся доступными, но обновления не будут выполняться.
Особенности интеграции запросов на слияние описаны в подразделе Запросы на слияние
Настройка вебхука в GitFlic
-
Перейдите в созданный проект и нажмите троеточие в правом верхнем углу панели управления проектом.
-
Отобразится раздел "Настройки", перейдите в него и выберите "Вебхуки".
-
Нажмите "Создать" и у вас откроется окно создания вебхука.
-
В поле "Токен" - укажите токен, сгенерированный на этапе добавления интеграции в TeamStorm. В поле "URL для отправки данных" - укажите Адрес подключения из настроек интеграции в TeamStorm. В поле "Секрет" - укажите тот же токен, который указали в первом пункте.
-
Далее в триггерах вебхука, укажите следующие параметры ( Отмена запроса на слияние, Новый запрос на слияние, Обновление запроса на слияние, Закрытие запроса на слияние, Слияние ).
-
Сохраните вебхук.
Запросы на слияние
В случае если настроена интеграция с GitFlic и системой, а описание и/или заголовок запроса на слияние (Merge Request) в GitFlic содержит номер задачи, то системой будет успешно разобрано сообщение о создании, изменении или решении запроса на слияние и будет сформирован список связей задачи с соответствующей сущностью в GitFlic.
При наличии связей в карточке задачи отображается блок Запрос на слияние. В секции отображается список запросов с типом провайдера, именем запроса, его номером и статусом. На соответствующую сущность можно перейти, нажав на ее название в блоке .
Информация о запросах отсортирована по дате создания запроса сверху вниз от новых к старым.
В запросе на слияние в GitFlic отображается номер задачи в TeamStorm.
Запросы из GitFlic
Токен передается в заголовках запроса в параметре Gitflic-Webhook-Secret
Форматы запросов из GitFlic (доступно по ссылкам в таблице):
MERGE_REQUEST_CREATE
— Создание запроса на слияние
MERGE_REQUEST_UPDATE
— Обновление запроса на слияние
MERGE_REQUEST_ACCEPT
— Одобрение запроса на слияние
MERGE_REQUEST_CLOSE
— Закрытие запроса на слияние
MERGE_REQUEST_CANCEL
— Отмена запроса на слияние
Подробнее — в документации к GitFlic.
Ended: GitFlic
Интеграция с Test IT
TeamStorm и TestIT образуют единую экосистему, что обеспечивает простоту интеграции, повышает надежность вашей ИТ-инфраструктуры и независимость от сторонних сервисов.
Примечание
Для интеграции TeamStorm с TestIT используется одна учетная запись, с которой будет осуществляться работа в обеих системах. Вам потребуется создать новую учетную запись или выбрать одну из уже существующих учетных записей с необходимыми правами и лицензиями.
У учетной записи обязательно должна быть лицензия TestIT
Настройка интеграции
-
Войдите в систему, используя учетную запись, от имени которой будут создаваться дефекты.
-
На открывшемся экране нажмите на значок в правом верхнем углу экрана и выберите Настройки профиля.
-
Перейдите в раздел Безопасность и на экране создания токена нажмите Сгенерировать.
-
В открывшемся модальном окне нажмите Да, сгенерировать.
-
Скопируйте токен из соответствующего поля.
-
Перейдите на вкладку Администрирование.
-
Откройте раздел Интеграции и нажмите Создать.
-
В окне Новое подключение выберите TeamStorm.
-
Заполните информацию о подключении:
- В строке Название введите название нового подключения.
- В строке URL укажите адрес сервера, на котором развернута система TeamStorm.
- В строке Токен вставьте приватный токен, скопированный ранее.
-
Нажмите Сохранить.
После настройки интеграции вы сможете создавать дефекты в TeamStorm из системы TestIT и отслеживать статусы дефектов не переключаясь между системами.
Вебхуки
Вебхуки — это способ интеграции, который позволяет при запуске какого-либо события в TeamStorm автоматически оправлять данные об этом событии во внешнюю систему.
Вебхуки настраиваются на уровне пространства.
Механизмом выполнения вебхука является HTTP-запрос по методу POST.
Пример
В TeamStorm создается вебхук, который при событиях Добавление списания времени и Изменение списания времени отправляет данные об этих событиях во внешнюю систему. Пользователь внешней системы может в реальном времени видеть и учитывать списания пользователей TeamStorm, сделанные в том пространстве, для которого создан вебхук.
Доступ к разделу Вебхуки в настройках пространства выдается пользователям с разрешением Управление вебхуками.
По умолчанию разрешение Управление вебхуками включено для роли Администратор и отключено для ролей Пользователь и Гость.
Добавление вебхука
- Войдите в систему, используя учетную запись, для которой подключено разрешение Управление вебхуками.
- Перейдите в пространство, для которого вы хотите добавить вебхук.
- Перейдите в настройки пространства и нажмите Вебхуки на панели слева.
- Нажмите Добавить.
- На открывшемся экране добавления вебхука заполните поля:
- Название вебхука;
- Описание вебхука;
- URL (обязательное) — адрес во внешней системе, куда будет отправлен запрос с данными;
- Токен (обязательное) — токен для работы с вебхуками, сформированный во внешней системе. Если внешняя система не предполагает использования токенов, введите в поле любое значение;
- Выберите из списка одно или несколько событий, при наступлении которых будет срабатывать вебхук.
- Добавьте пользовательский заголовок, который будет передаваться во внешнюю систему (опционально):
- Нажмите Добавить заголовок.
- Введите ключ и значение заголовка. Длина каждого параметра не может быть больше 2048 символов. Пара ключ-значение может использоваться для передачи во внешнюю систему какого-либо специфического параметра.
- Настройте SSL-верификацию с помощью переключателя. По умолчанию SSL-верификация разрешена. Если необходимо отключить верификацию, переведите переключатель в неактивное положение.
- Опционально. Нажмите Проверить в правом верхнем углу, а затем в раскрывшемся списке нажмите на название события,
отправку данных которого вы хотите проверить.
Результат проверки выводится в открывшемся окне, где указаны:
- код ответа (
200
для успешного завершения запроса); - тело основного запроса с параметрами и переменными;
- тело запроса с передачей заголовков и метаданных.
- код ответа (
- Нажмите Добавить в правом верхнем углу.
Вебхук будет добавлен в систему и на экране Вебхуки будет отображена новая строка, включающая:
- название вебхука;
- тип события, запускающего выполнение вебхука;
- дату создания вебхука;
- переключатель, показывающий состояние вебхука (активное / неактивное) и позволяющее управлять этим состоянием;
- кнопку удаления вебхука.
Активация и деактивация вебхука
- Войдите в систему, используя учетную запись, для которой подключено разрешение Управление вебхуками.
- Перейдите в пространство, вебхуками которого вы хотите управлять.
- Перейдите в настройки пространства.
- На открывшемся экране найдите в таблице нужный вебхук и переведите переключатель в столбце Активен в нужное положение.
Активное положение переключателя выделяется синим цветом.
Неактивные вебхуки не отправляют во внешнюю систему запрос при наступлении события.
Редактирование вебхука
- Войдите в систему, используя учетную запись, для которой подключено разрешение Управление вебхуками.
- Перейдите в пространство, вебхуками которого вы хотите управлять.
- Перейдите в настройки пространства и нажмите Вебхуки на панели слева.
- На открывшемся экране найдите в таблице нужный вебхук и нажмите на его название.
- На открывшемся экране отредактируйте данные как указано в подразделе Добавление вебхука.
- Нажмите Сохранить в правом верхнем углу.
Просмотр результатов выполнения вебхука
В нижней части экрана редактирования вебхука содержится журнал событий, в который записываются результаты выполнения вебхука.
Журнал представлен в виде таблицы, которая содержит:
- статус выполнения;
- тип события, запустившего выполнение вебхука;
- время запуска.
При нажатии на строку с событием открывается окно, в котором содержится:
- код ответа (
200
для успешного завершения запроса); - статус ответа — ОК при успешном завершении или название ошибки при неудачном;
- тело основного запроса с параметрами и переменными;
- тело запроса с передачей заголовков, токенов и других специфических данных.
Пример
Событие: добавление списания Запрос
{
"workitemId": "66030789-d986-4cbe-b2bc-a373d352ff10",
"entryId": "35f98d2e-de65-4467-864d-dcce0e7ca2e6",
"creationDate": "2024-11-04T14:52:49.8289869Z",
"startDate": "2024-11-04T14:52:46.023Z",
"duration": 28800,
"description": null,
"tenantId": "00000000-0000-0000-0000-000000000000",
"eventId": "aaaaaaaa-0004-4001-aaaa-aaaaaaaaaaaa",
"eventName": "TimeTrackingCreated",
"eventType": "TimeTrackingCreated",
"userId": "57edd357-b3b1-496f-b2c5-1d1bbbf7175e",
"workspaceId": "01c7722d-a7ea-4bd9-aaf8-799fb6c7cd6f",
"workspaceKey": "PIS"
}
В правой верхней части журнала находится поле, в котором указаны дата и время, до наступления которого выводятся данные журнала.
Чтобы изменить дату и время:
- Нажмите на поле.
- Выберите новую дату и время из раскрывшегося календаря с часами или нажмите Сейчас, чтобы установить текущие дату и время.
- Нажмите ОК.
Удаление вебхука
- Войдите в систему, используя учетную запись, для которой подключено разрешение Управление вебхуками.
- Перейдите в пространство, вебхуками которого вы хотите управлять.
- Перейдите в настройки пространства и нажмите Вебхуки на панели слева.
- На открывшемся экране найдите в таблице нужный вебхук и нажмите кнопку удаления в правой части строки.
- Нажмите **Да, я хочу удалить вебхук.
Вебхук будет безвозвратно удален вместе со всеми данными о его выполнении.
Ended: Интеграции
Выгрузка данных ↵
Выгрузка данных
Выгрузка данных доступна как для пространств целиком, так и для созданных в этих пространствах папок, включая вложенные папки и папки, создаваемые в расширениях.
Кроме того выгрузка доступна для сохраненных и выполненных запросов.
Выгрузка выполняется в формате CSV.
Выгрузка данных описана в подразделах:
Выгрузка данных о задачах
-
В панели навигации слева нажмите напротив названия пространства или папки, из которых вы хотите сделать выгрузку.
-
В открывшемся меню выберите Выгрузить, затем нажмите Задачи в .CSV.
Процесс сохранения файла с выгрузкой начнется в браузере без дополнительного подтверждения.
По окончании процесса сохранения перейдите в меню загрузок вашего браузера.
Файл с выгрузкой данных будет иметь название вида
[Название пространства] + [дата+время выгрузки].csv
.
Выгрузка данных о списании трудозатрат
-
В панели навигации слева нажмите напротив названия пространства или папки, из которых вы хотите сделать выгрузку.
-
В открывшемся меню выберите Выгрузить, затем нажмите Списания в .CSV.
Процесс сохранения файла с выгрузкой начнется в браузере без дополнительного подтверждения.
По окончании процесса сохранения перейдите в меню загрузок вашего браузера.
Файл с выгрузкой данных будет иметь название вида
Worklog_ + [дата+время выгрузки].csv
.
Выгрузка данных из запроса
-
Перейдите в запрос, из которого вы хотите выгрузить данные. Запрос должен быть предварительно сохранен и выполнен.
-
Нажмите в правом верхнем углу экрана.
-
Выберите Выгрузить, затем Задачи в .CSV или Списания в .CSV.
Подробнее выгрузки задач и списаний описаны в разделах Выгрузка данных о задачах и Выгрузка данных о списании трудозатрат.
Выгрузка данных из списка задач
- Перейдите на вкладку Дашборды.
- Выберите дашборд, в котором содержится нужный список задач.
- Нажмите в правом верхнем углу виджета и выберите Выгрузить в .CSV.
Процесс сохранения файла с выгрузкой начнется в браузере без дополнительного подтверждения.
По окончании процесса сохранения перейдите в меню загрузок вашего браузера.
Файл с выгрузкой данных будет иметь название вида
[Название списка]_ + [дата+время выгрузки].csv
.
Ended: Выгрузка данных
Страницы ↵
Работа с разделом «Страницы»
Раздел «Страницы» — это интегрированная в TeamStorm система управления знаниями для распределенных команд.
Раздел основан на принципах Wiki и существует на уровне рабочего пространства.
Для перехода в раздел «Страницы»:
-
Перейдите в соответствующее пространство.
-
В панели навигации слева нажмите Страницы.
Если в разделе уже существуют документы, на основном экране будет отображена главная страница раздела. Слева будет отображена панель навигации по разделу.
Если в разделе еще нет документов, будет отображена надпись Пространство не содержит страниц и кнопка Создать страницу.
Работа с разделом «Страницы» описана в подразделах:
Создание страницы
Система позволяет создавать новые страницы и клонировать существующие.
Создание новой страницы
-
Перейдите в раздел «Страницы» выбранного пространства.
-
В разделе «Страницы»:
- если документов в разделе еще нет, нажмите Создать страницу на основном экране;
- если в разделе есть ранее созданные документы, нажмите в панели навигации кнопку (Создать страницу) рядом с названием пространства, чтобы создать страницу в корне пространства;
- нажмите в панели навигации кнопку (Создать страницу) рядом с названием ранее созданной страницы, чтобы создать дочернюю по отношению к ней страницу.
-
Введите название страницы в поле Название, далее введите или скопируйте нужный текст в поле редактора. При необходимости воспользуйтесь встроенными инструментами форматирования текста.
-
Нажмите кнопку Опубликовать.
Страница будет опубликована и открыта для чтения. Создавший страницу пользователь будет автоматически подписан на уведомления об изменениях этой страницы.
В поле ввода редактора можно упоминать пользователей при помощи символа @. Упоминать можно тех пользователей, которые имеют доступ в пространство, в котором вы находитесь. Для упоминания пользователя:
-
Введите символ @ в поле ввода.
-
В отобразившемся списке выберите пользователя, которого хотите упомянуть.
Отмеченному пользователю придет уведомление о том, что его упомянули на странице.
Клонирование страницы
Для быстрого создания страниц можно использовать клонирование:
-
Перейдите на страницу, которую нужно клонировать.
-
Нажмите в правом верхнем углу экрана и выберите Клонировать страницу.
Будет создана страница с названием вида Копия [название исходной страницы], а на экране отобразится исчезающее уведомление с активной ссылкой на созданную копию.
Редактирование страницы
- Откройте страницу, которую необходимо отредактировать.
- Нажмите кнопку (Редактировать) в правом верхнем углу страницы.
- Отредактируйте название или текст страницы. При необходимости воспользуйтесь встроенными инструментами форматирования текста.
- Нажмите Опубликовать.
Страница будет опубликована и открыта для чтения. Отредактировавший страницу пользователь будет автоматически подписан на уведомления об изменениях этой страницы.
В случае если за время редактирования страницы в нее были внесены изменения другим пользователем, вам будет отображено модальное окно с предложением разрешить конфликт версий.
Текст окна содержит активную ссылку на новую версию страницы, которая при нажатии откроется для просмотра в новой вкладке.
Для разрешения конфликта версий выберите из списка один из вариантов:
-
Обработать конфликт автоматически — ваши изменения и версия другого пользователя будут объединены. В местах пересечений будут применены ваши изменения.
-
Оставить последнюю версию, потеряв свои изменения — будут применены изменения, внесенные другим пользователем, ваши изменения не сохранятся.
-
Сохранить свою версию, проигнорировав последние изменения — будут применены только ваши изменения.
Черновики
Раздел «Страницы» позволяет сохранять черновик страницы и иметь возможность вернуться к нему в любое время.
Черновики нужны для сохранения контента, который написан, но по каким-то причинам еще не готов к публикации.
Черновик создается автоматически при вводе любого содержимого в поле редактора страницы при ее создании или редактировании.
Если не введено название страницы, черновик создается с именем «Без названия».
Содержимое сохраняется автоматически в следующих случаях:
- по истечении 2 минут;
- при выходе из режима редактирования без публикации версии (при переходе на другую страницу или при нажатии кнопки Закрыть).
В черновиках отсутствует панель инструментов для управления отслеживанием, связыванием с задачей, вложениями и комментариями.
ВНИМАНИЕ
Черновик доступен для просмотра и редактирования только автору изменений. К странице-черновику невозможно создать дочернюю страницу-черновик, опубликовать для него дочернюю страницу или сделать существующую страницу дочерней. Если на странице есть неопубликованный черновик, его содержимое будет потеряно при восстановлении предыдущей версии автором черновика.
Переход к черновику
Черновики отображаются на панели навигации в разделе «Страницы» и отмечаются на ней значком с изображением карандаша .
Для перехода к черновику нажмите на его название на панели навигации.
Если вы хотите опубликовать черновик как страницу, нажмите Опубликовать.
Если вы считаете, что черновик еще не готов к публикации, нажмите Закрыть.
Удаление черновика
- Наведите курсор на значок с изображением карандаша на панели навигации напротив того черновика, который вы хотите удалить и нажмите отобразившуюся кнопку вызова меню.
- Выберите Удалить.
- В открывшемся модальном окне нажмите Да, я хочу удалить черновик.
Работа с версиями страницы
Система позволяет:
- просматривать страницы в конкретной версии;
- восстанавливать из истории любую выбранную пользователем версию страницы (делать ее текущей);
- удалять конкретные версии страниц.
Таблица истории версий содержит:
- номер версии страницы;
- дату и время создания версии;
- имя пользователя, создавшего версию;
- кнопку вызова контекстного меню для управления версиями.
Просмотр версии
-
Перейдите на страницу, с версиями которой вы хотите работать.
-
Нажмите кнопку вызова меню в правом верхнем углу экрана и выберите Версии страницы.
-
В открывшейся панели выберите версию страницы, которую вы хотите просмотреть.
-
При необходимости закройте панель версий, нажав кнопку в правом верхнем углу панели.
Откроется страница в выбранной версии. В случае, если выбрана не текущая версия, номер версии будет указан в верхней части страницы. Номер текущей версии не отображается.
Восстановление версии из истории
-
Перейдите на страницу, с версиями которой вы хотите работать.
-
Нажмите кнопку вызова меню в правом верхнем углу экрана и выберите Версии страницы.
-
В открывшейся панели выберите нужную версию страницы и нажмите Восстановить.
Версия будет скопирована и сделана текущей под новым номером. Пользователи, подписанные на страницу, получат уведомление о создании новой версии.
Удаление версии
-
Перейдите на страницу, с версиями которой вы хотите работать.
-
Нажмите кнопку вызова меню в правом верхнем углу экрана и выберите Версии страницы.
-
В открывшейся панели выберите нужную версию страницы и нажмите Удалить.
-
В открывшемся модальном окне нажмите Да, я хочу удалить эту версию.
Версия будет безвозвратно удалена. При попытке удаления последней версии система отобразит предупреждение, что будет удалена вся страница, включая дочерние.
Связывание страницы с задачей
Система позволяет связывать страницы и задачи, таким образом создавая зависимости задач и документации.
При помощи связей можно легко перемещаться от страницы к связанной с ней задаче и обратно.
Добавление связи
-
Перейдите на страницу, которую необходимо связать с задачей.
-
Нажмите кнопку Связанные в правом верхнем углу страницы.
-
В раскрывшейся справа панели в блоке СВЯЗАННЫЕ ЗАДАЧИ нажмите Связанная задача.
-
Начните вводить название или идентификатор задачи в поле ввода.
-
Выберите нужную задачу из раскрывшегося списка и нажмите кнопку подтверждения .
В блоке СВЯЗАННЫЕ ЗАДАЧИ отобразится активная ссылка на задачу, содержащая идентификатор и название связанной задачи, а также редактируемые атрибуты: статус задачи и ответственный за ее выполнение.
Удаление связи
-
Перейдите на страницу, которую нужно отвязать от задачи.
-
Нажмите кнопку Связанные в правом верхнем углу страницы.
-
В раскрывшейся справа панели в блоке СВЯЗАННЫЕ ЗАДАЧИ нажмите кнопку и выберите Удалить.
Связь и ее отображение в блоке СВЯЗАННЫЕ ЗАДАЧИ будут удалены без дополнительных подтверждений.
Работа с вложениями
В разделе «Страницы» предусмотрена возможность добавлять файлы в виде вложений к страницам и сохранять вложенные файлы на устройство пользователя.
Добавление вложения
-
Перейдите на страницу, к которой необходимо добавить вложение.
-
Нажмите кнопку Вложения в правом верхнем углу страницы.
-
В раскрывшейся справа панели в блоке ВЛОЖЕНИЯ нажмите иконку добавления файлов (Загрузить файлы).
-
В открывшемся системном окне перейдите в папку с нужным файлом, выберите файл и подтвердите выбор.
Вложение будет добавлено и отображено в блоке ВЛОЖЕНИЯ через некоторое время, необходимое для загрузки файла на сервер.
Примечание
Вставленные через редактор изображения и другие файлы автоматически попадают в блок ВЛОЖЕНИЯ
Сохранение вложения на устройство пользователя
-
Перейдите на страницу, с которой необходимо выгрузить вложение.
-
Нажмите кнопку Вложения в правом верхнем углу страницы.
-
В раскрывшейся справа панели в блоке ВЛОЖЕНИЯ выделите курсором нужное вложение.
-
Нажмите отобразившуюся кнопку выгрузки
Файл будет сохранен на ваше устройство без дополнительных подтверждений.
Удаление вложения
-
Перейдите на страницу, из которой необходимо удалить вложение.
-
Нажмите кнопку Вложения в правом верхнем углу экрана.
-
В раскрывшейся справа панели в блоке ВЛОЖЕНИЯ выделите курсором нужное вложение.
-
Нажмите отобразившуюся кнопку удаления
-
Нажмите Да, я хочу удалить вложение.
Файл будет удален без возможности восстановления.
Метки
TeamStorm позволяет добавлять метки к страницам, чтобы легче находить и группировать логически связанные статьи в базе знаний.
Добавление меток к страницам доступно как в режиме чтения страницы, так и в режиме редактирования.
Добавление существующей метки
- Откройте страницу, к которой вы хотите добавить метку.
- Под заголовком страницы нажмите Добавить метку или на поле с уже существующей меткой.
- Выберите метку из раскрывшегося списка или введите название нужной метки в поле ввода для поиска.
- Щелкните на любое место страницы, чтобы свернуть список.
Метка будет добавлена к странице и отобразится под заголовком/
К странице можно добавить одну или несколько меток.
Создание новой метки
- Откройте страницу, к которой вы хотите добавить метку.
- Под заголовком страницы нажмите Добавить метку или на поле с уже существующей меткой.
- Введите название новой метки в поле ввода.
- Нажмите Создать новую метку
- Щелкните на любое место страницы для того, чтобы свернуть список.
Созданная метка будет создана в системе и добавлена к странице. В дальнейшем созданную метку можно будет добавить к другим страницам выбором из существующих меток.
Удаление метки
- Под заголовком страницы нажмите на поле с существующими метками.
- Нажмите справа от той метки, которую вы хотите удалить.
Метка будет удалена со страницы, но останется существовать в системе и будет доступна для последующего добавления.
Полнотекстовый поиск
Для поиска содержимого по тексту страниц:
-
Введите искомый текст в поле ввода в верхней части экрана.
-
Выберите Страницы.
Результаты поиска будут отображены в виде списка под полем ввода.
Комментарии к страницам ↵
Комментарии к страницам
Комментирование страниц описано в подразделах:
Простые комментарии к страницам
Добавление комментария к странице
-
Откройте страницу, к которой хотите добавить комментарий.
-
Нажмите кнопку Комментарии в правом верхнем углу страницы.
-
Введите комментарий в поле ввода комментария в нижней части открывшейся справа панели и нажмите Отправить.
Комментарий отобразится в блоке комментариев.
Кнопка Комментарии в правом верхнем углу страницы будет отображаться со счетчиком комментариев 2 .
Редактирование комментария
- Нажмите кнопку Комментарии в правом верхнем углу страницы.
- В открывшейся справа панели нажмите кнопку справа от комментария, который вы хотите отредактировать, и выберите Редактировать.
- Отредактируйте комментарий в открывшемся внизу поле и нажмите Отправить.
Редактирование комментария доступно в течение часа после его создания.
Удаление комментария
-
Откройте страницу, комментарий к которой вы хотите удалить.
-
Нажмите кнопку Комментарии в правом верхнем углу страницы.
-
В открывшемся блоке комментариев найдите комментарий, который хотите удалить, нажмите кнопку и выберите Удалить.
-
В открывшемся модальном окне нажмите Да, я хочу удалить комментарий.
Комментарий будет безвозвратно удален.
Кнопка Комментарии в правом верхнем углу страницы изменит значение счетчика.
Инлайн-комментарии
TeamStorm позволяет комментировать контент на страницах путем выделения определенного текста. Таким образом пользователь может добавлять важную информацию и задавать вопросы по содержимому, не теряя контекст.
Добавление инлайн-комментария
- Откройте страницу, к которой вы хотите добавить инлайн-комментарий.
- Выделите текст, который вы хотите прокомментировать и нажмите отобразившуюся над текстом кнопку .
- Введите комментарий в поле ввода комментария в нижней части открывшейся справа панели и нажмите Отправить.
Комментарий отобразится в блоке комментариев.
На один фрагмент текста можно добавить несколько комментариев. Новый комментарий в блоке комментариев располагается выше более старого.
Текст, который был прокомментирован, на странице выделяется подчеркиванием и светлой заливкой.
При нажатии на выделенный текст на странице справа откроется блок комментариев, на котором будет выделен комментарий, относящийся к этому тексту.
При выборе комментария текст, к которому относится комментарий, выделяется на странице более темной заливкой.
Пользователю, упомянутому в комментарии при помощи символа @
, будут отправлены системное и почтовое уведомление.
Кнопка Комментарии в правом верхнем углу страницы будет отображаться со счетчиком комментариев 2 .
Редактирование инлайн-комментария
- Нажмите кнопку Комментарии в правом верхнем углу страницы.
- В открывшейся справа панели нажмите кнопку справа от комментария, который вы хотите отредактировать, и выберите Редактировать.
- Отредактируйте комментарий в открывшемся внизу поле и нажмите Отправить.
Ответ на инлайн-комментарий
- Нажмите на нужный инлайн-комментарий в блоке комментариев.
- Нажмите в поле Ответ* под комментарием.
- В раскрывшемся мини-редакторе введите ответ на комментарий, при необходимости отформатируйте его и нажмите Отправить.
Ответ на комментарий будет отображен под тем комментарием, к которому он относится.
Ответ на инлайн-комментарий можно редактировать так же, как основной комментарий.
Ответ на инлайн-комментарий не влияет на значение счетчика на кнопке Комментарии.
Пользователю, создавшему комментарий, приходят почтовые и системные уведомления о том, что к комментарию был добавлен ответ. Уведомления сформулированы таким образом, чтобы из них был понятен их контекст.
Если в ответе на комментарий есть уопминание какого-либо пользователя, то упомянутому в ответе пользователю приходят почтовые и системные уведомления вида <Пользователь> упомянул(а) вас в комментарии на Странице.
Удаление инлайн-комментария или ответа на инлайн-комментарий
- В блоке комментариев найдите инлайн-комментарий или ответ, который вы хотите удалить, нажмите кнопку и выберите Удалить.
- В открывшемся модальном окне нажмите Да, я хочу удалить комментарий.
Комментарий будет безвозвратно удален.
Кнопка Комментарии в правом верхнем углу страницы изменит значение счетчика.
Если удалено содержимое страницы, к которому был добавлен комментарий, то комментарий удаляется вместе с содержимым.
При восстановлении содержимого (с помощью восстановления версии или при отмене действия) комментарий восстанавливается.
См. также:
Решение инлайн-комментариев
Инлайн-комментарии и цепочки переписок по ним можно закрывать, тем самым показывая, что обсуждаемый вопрос был решен.
Решение комментария
- Нажмите кнопку Комментарии в правом верхнем углу страницы.
- Найдите во вкладке Открытые инлайн-комментарий или цепочку комментариев, которые вы хотите закрыть.
- Нажмите кнопку Решить напротив основного комментария в цепочке.
Комментарий или цепочка комментариев будут помещены во вкладку Решенные.
Выделение текста страницы, к которому относится комментарий, будет удалено.
Восстановление комментария
- Нажмите кнопку Комментарии в правом верхнем углу страницы.
- Перейдите во вкладку Решенные и найдите инлайн-комментарий или цепочку комментариев, которые вы хотите восстановить.
- Нажмите напротив основного комментария в цепочке и выберите Восстановить.
Комментарий или цепочка комментариев будут восстановлены и помещены во вкладку Открытые.
Выделение текста страницы, к которому относится комментарий, будет восстановлено.
Ended: Комментарии к страницам
Создание ссылки на страницу
- Перейдите на нужную страницу.
- Нажмите кнопку создания ссылки в правом верхнем углу.
Ссылка будет автоматически скопирована в буфер обмена.
Избранные страницы
TeamStorm позволяет добавлять страницы в избранное. Это обеспечивает оперативный доступ к важной информации из базы знаний.
Добавленные в избранное страницы отображаются в списке Избранное на Главной странице.
Добавление страницы в избранное
- Перейдите на страницу, которую вы хотите добавить в избранное.
- Нажмите (Добавить в избранное) в правом верхнем углу экрана.
Страница будет добавлена в избранное и ее название отобразится в списке Избранное на Главной странице.
Пользователю, добавившему страницу в избранное, будут приходить уведомления о изменениях на странице.
Удаление страницы из избранного
Удаление непосредственно на странице
- Перейдите на страницу, которую вы хотите удалить из избранного. Перейти можно из списка на Главной странице.
- Нажмите (Удалить из избранного) в правом верхнем углу экрана.
Страница будет удалена из избранного и из списка Избранное на Главной странице.
Примечание
Этот способ рекомендуется использовать, когда вы хотите ознакомиться с содержимым страницы и удостовериться в том, что оно вам больше не интересно.
Удаление на Главной странице
- Перейдите на Главную страницу.
- Найдите в списке Избранное страницу, которую вы хотите удалить из избранного, наведите на нее курсор и нажмите (Удалить из избранного) справа от ее названия.
Страница будет удалена из избранного.
Примечание
Используйте этот способ, если хорошо знакомы с содержимым страницы и уверены в том, что оперативный доступ к нему вам больше не нужен.
Экспорт в PDF
TeamStorm позволяет выгружать в файл формата PDF как весь раздел Страницы, так и отдельные страницы, включая вложенные.
Экспорт всего раздела
- Перейдите в раздел Страницы того пространства, страницы которого вы хотите выгрузить.
- Нажмите напротив названия пространства в панели навигации слева.
- Нажмите Выгрузить и выберите Страницы в PDF.
- На открывшемся экране убедитесь в том, что выгружается вся необходимая информация и нажмите кнопку Скачать в правом верхнем углу.
- В открывшемся окне печати браузера выберите Сохранить в PDF (если по умолчанию выбрано иное) и убедитесь в том, что документ сформирован корректно.
- Нажмите Сохранить.
- В открывшемся системном окне выберите расположение, куда будет сохранен файл и, если необходимо, введите его название.
- Нажмите Сохранить.
Файл будет сохранен в выбранное представление на вашем устройстве.
Экспорт страницы
- Перейдите в раздел Страницы.
- Нажмите напротив названия страницы, которую вы хотите выгрузить.
-
Нажмите Выгрузить и выберите:
- Выбранную страницу в PDF — если хотите выгрузить только основную страницу;
- Вместе с дочерними в PDF — если хотите выгрузить страницу вместе со всеми вложенными страницами.
-
На открывшемся экране убедитесь в том, что выгружается вся необходимая информация и нажмите кнопку Скачать в правом верхнем углу.
- В открывшемся окне печати браузера выберите Сохранить в PDF (если по умолчанию выбрано иное) и убедитесь в том, что документ сформирован корректно.
- Нажмите Сохранить.
- В открывшемся системном окне выберите расположение, куда будет сохранен файл и, если необходимо, введите его название.
- Нажмите Сохранить.
Удаление страницы
-
Нажмите в правом верхнем углу страницы, которую необходимо удалить, или рядом с названием страницы в панели навигации.
-
Выберите Удалить.
-
Нажмите Да, я хочу удалить страницу.
Страница и все ее дочерние страницы будут удалены.
Ended: Страницы
Вставка и форматирование контента ↵
Вставка и форматирование контента
TeamStorm позволяет создавать подробные, структурированные описания задач, тексты страниц и комментарии к задачам и страницам благодаря встроенным инструментам форматирования текста.
Инструменты форматирования расположены в верхней части поля ввода текста и отображаются при переводе курсора в это поле.
Инструменты вставки и форматирования
Инструменты форматирования в списке указаны в порядке справа налево.
- Отменить правку.
- Вернуть правку.
- Стиль (заголовок или обычный текст).
- Цвет текста и цвет фона для текста.
- Полужирный шрифт.
- Курсивный шрифт.
- Стиль текста:
- подчеркнутый шрифт;
- зачеркнутый шрифт;
- подстрочный текст;
- надстрочный текст;
- фрагмент кода.
- Нумерованный список.
- Маркированный список.
- Выровнять текст:
- по левому краю;
- по центру;
- по правому краю.
- Вставить ссылку.
- Вставить файл или изображение.
- Вставить объект:
- чек-лист;
- оглавление (недоступно для комментариев);
- блок кода;
- Draw.io;
- список задач (только для страниц);
- список страниц (только для страниц);
- сворачивающаяся панель;
- ссылка на задачу;
- ссылка на страницу;
- сегмент (только для страниц);
- контент страницы или задачи (только для страниц);
- разделитель;
- информационная панель.
- Вставить таблицу.
Примечание
Таблицу также можно вставить, скопировав из файла XLS
Редактирование таблиц
При вставке таблицы отобразятся дополнительные инструменты форматирования таблицы:
- Добавить столбец слева;
- Добавить столбец справа;
- Добавить строку сверху;
- Добавить строку снизу;
- Сделать заголовком (первую строку или первый столбец);
- Удалить:
- таблицу;
- столбец;
- строку;
- Изменить цвет ячейки;
- Объединить ячейки (отображается при выделении нескольких ячеек).
Упоминание пользователей
В полях ввода описаний и комментариев можно упоминать пользователей при помощи
символа @
. Упоминать можно тех пользователей, которые имеют доступ в
пространство, в котором вы находитесь. Для упоминания пользователя:
- Введите символ
@
в поле ввода. - В отобразившемся списке выберите пользователя, которого хотите упомянуть.
Отмеченному пользователю придет уведомление о том, что его упомянули в описании или комментарии к задаче.
Процессы создания и редактирования описаний и комментариев в общих чертах описаны в разделах:
Внимание!
При редактировании описания задачи необходимо после внесения изменений щелкнуть в любом месте карточки задачи, кроме поля ввода описания.
В противном случае изменения могут не сохраниться.
См. также:
Оглавления
TeamStorm позволяет вставлять оглавления в описаниях задач и на страницах, что облегчает навигацию по структурированному тексту.
Все элементы оглавления являются активными ссылками.
Оглавление динамически изменяется — при добавлении или удалении заголовка в тексте будет автоматически создан или удален соответствующий ему элемент оглавления.
Вставка оглавления
- В карточке задачи или на странице в режиме ее редактирования поставьте курсор в место, куда вы хотите вставить оглавление.
- Нажмите на панели инструментов кнопку Вставить объект.
- В раскрывшемся списке выберите Оглавления.
Блок оглавления будет вставлен в выбранное место, далее можно перейти к настройке оглавления.
Примечание
Оглавление можно вставить в любое место страницы или описания. В тексте должен присутствовать хотя бы один заголовок, иначе блок оглавления будет пустым.
Настройка оглавления
- В блоке оглавления нажмите кнопку (Настроить).
-
В открывшемся меню выберите:
- Отступ — отступ слева каждого последующего уровня оглавления относительно предыдущего;
- Минимальный уровень заголовков — оглавление будет формироваться начиная с указанного уровня (если выбрать 2, то заголовки первого уровня в оглавлении не отобразятся);
- Максимальный уровень заголовков — оглавление будет содержать уровни заголовков не выше указанного (если выбрать 3, то заголовки четвертого и пятого уровня в оглавлении не отобразятся даже если они есть в тексте).
-
Закройте меню кликнув в любое место экрана за его пределами.
Удаление оглавления
В блоке оглавления нажмите кнопку (Удалить).
Оглавление будет удалено без дополнительных подтверждений.
Вставка схем и диаграмм
TeamStorm позволяет вставлять и редактировать схемы и диаграммы в описаниях задач и на страницах при помощи сервиса draw.io.
Вставка объекта draw.io
- В редакторе на карточке задачи или в режиме редактирования страницы нажмите на панели инструментов кнопку Вставить объект.
- В раскрывшемся списке выберите Draw.io.
- После открытия рабочего окна draw.io создайте в нем нужный объект при помощи штатных инструментов сервиса.
- Нажмите Сохранить и выйти для того, чтобы вставить объект в поле описания или Выйти, чтобы не сохранять изменения.
Объект будет вставлен в описание задачи, а также прикрепится к карточке задаче как вложение.
Редактирование объекта draw.io
- В карточке задачи или в режиме редактирования страницы кликните в поле ввода описания и нажмите кнопку Открыть справа от объекта.
- После открытия рабочего окна draw.io отредактируйте объект при помощи штатных инструментов сервиса.
- Нажмите Сохранить и выйти для того, чтобы вставить объект в поле описания или Выйти, чтобы не сохранять изменения.
Отредактированный объект отобразится в описании и будет прикреплен к карточке задачи как еще одно вложение.
Изменение размеров объекта draw.io
Размер объектов draw.io, вставленных в тексты страниц и описаний, можно изменять. Это позволяет улучшить восприятие и читаемость включенных в текст схем и диаграмм.
Чтобы изменить размер объекта:
- Перейдите в режим редактирования страницы или в поле Описание на карточке задачи.
- Нажмите на область объекта и убедитесь в том, что по его контуру отобразилась рамка.
- Захватите любой из углов объекта и перемещайте курсор по диагонали, таким образом меняя размер.
- Отпустите курсор, когда добьетесь наилучшего результата.
Размер объекта изменяется пропорционально изначальным размерам.
Удаление объекта draw.io
В карточке задачи или в режиме редактирования страницы кликните в поле ввода описания и нажмите кнопку Удалить справа от объекта.
Объект будет удален из описания без дополнительных подтверждений, но останется в карточке задачи как вложение.
Вставка списков задач на страницу
TeamStorm позволяет вставлять в текст страницы результаты выполненных пространственных запросов и списки задач (глобальные запросы).
Вставка пространственного запроса
- Перейдите в режим редактирования страницы, нажав кнопку Редактировать в правом верхнем углу.
- Разместите курсор в том месте, куда вы хотите вставить результаты запроса.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке выберите Список задач.
- В отобразившееся на странице поле введите название запроса, результаты которого вы хотите вставить.
- Выберите запрос из раскрывшегося списка. Пространственные запросы в списке отмечены пиктограммой и содержат название пространства, к которому они относятся, под названием запроса.
- Убедитесь в том, что результаты нужного запроса вставлены, и нажмите Опубликовать в правом верхнем углу страницы.
После публикации строки вставленного запроса станут активными и по нажатию на них можно будет переходить к соответствующей задаче.
Вставка списка задач (глобального запроса)
- Перейдите в режим редактирования страницы, нажав кнопку Редактировать в правом верхнем углу.
- Разместите курсор в том месте, куда вы хотите вставить результаты запроса.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке выберите Список задач.
- В отобразившееся на странице поле введите название запроса, результаты которого вы хотите вставить.
- Выберите список задач из раскрывшегося списка. Списки задач (глобальные запросы) отмечены пиктограммой и содержат под названием надпись Список задач.
- Убедитесь в том, что результаты нужного списка задач вставлены, и нажмите Опубликовать в правом верхнем углу страницы.
Настройка отображения запроса
- Нажмите в правом верхнем углу вставленного на страницу запроса или списка задач.
- В открывшемся модальном окне:
- введите максимальное количество строк для отображения;
- выберите столбцы для отображения или удалите те столбцы, отображение которых вы хотите скрыть. Меняя порядок названий столбцов в поле Столбцы для отображения вы меняете их порядок в отображаемой таблице.
- Нажмите Сохранить.
Для всех столбцов таблицы доступна сортировка.
Добавление колонок в виджете не ведет к их добавлению в самом запросе.
Удаление списка задач
- Нажмите кнопку в правом верхнем углу вставленного на страницу запроса.
- Выберите удалить.
Запрос будет удален без дополнительных подтверждений.
Внимание!
Не забывайте нажимать кнопку Опубликовать после внесения всех необходимых изменений на странице.
Вставка списка страниц
TeamStorm позволяет вставлять в текст страницы список других страниц, отфильтрованный по нужным параметрам.
Вставка списка страниц позволяет автоматически формировать внутренний ссылочный аппарат при подготовке статьи или документа.
Вставка списка
- Перейдите в режим редактирования страницы, нажав кнопку Редактировать в правом верхнем углу.
- Разместите курсор в том месте, куда вы хотите вставить список страниц.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке выберите Список страниц.
- В левой части открывшегося окна:
- введите название списка;
- выберите пространства, страницы из которых вы хотите включить в список (по умолчанию выбрано текущее пространство);
- настройте фильтры, для отображения нужных страниц. Принципы применения фильтров описаны в разделе Фильтрация задач;
- введите количество страниц для отображения в списке (по умолчанию — 40)
- Настройте отображение столбцов как описано в подразделе Настройка отображения столбцов (опционально).
- Убедитесь в том, что в блоке предварительного просмотра отобразились названия нужных страниц. При необходимости воспользуйтесь переключением номера страницы списка в правом верхнем углу.
- Нажмите Сохранить.
Параметры фильтрации для списка страниц:
- Пространство (обязательный параметр);
- Метки;
- Автор создания;
- Автор изменения;
- Дата создания;
- Дата изменения;
- Упоминания;
- Название;
- Описание.
Список будет отображен на странице. Справа от названия списка будет отображено общее число содержащихся в нем страниц.
Редактирование списка
- Перейдите в режим редактирования страницы.
- Нажмите в правой верхней части блока со списком страниц и выберите Редактировать.
- Внесите изменения как описано в подразделе Вставка списка.
- Нажмите Сохранить.
Настройка отображения столбцов
- В окне создания или редактирования списка нажмите Отображение столбцов в правом верхнем углу.
- В раскрывшемся списке отметьте названия тех столбцов, которые вы хотите отображать в списке задач. Удаление столбца Название страницы невозможно.
- Убедитесь в том, что выбранные столбцы отобразились в блоке предварительного просмотра. При необходимости воспользуйтесь полосой горизонтальной прокрутки в нижней части окна.
- Перейдите к другим настройкам или сохранению страницы, как описано в подразделе Вставка списка.
Список страниц с выбранными столбцами отобразится на странице после сохранения изменений.
Для вашего удобства вы можете менять местами строки в выпадающем списке выбора столбцов. Для этого захватите строку за специальную область слева от чекбокса и перетащите строку на новое место.
Удаление списка
- Перейдите в режим редактирования страницы.
- Нажмите в правой верхней части блока со списком страниц и выберите Удалить.
Список будет удален без дополнительного подтверждения.
Внимание!
Не забывайте нажимать кнопку Опубликовать после внесения всех необходимых изменений на странице.
Вставка сегмента
TeamStorm позволяет вставлять в текст страницы часть текста другой страницы.
Вставка сегмента нужна для переиспользования контента. Изменения в оригинале автоматически отображаются на вставке. Таким образом пользователь при создании страниц может избежать дублирования информации и обеспечить централизованное обновление содержимого.
Вставка сегмента используется для того, чтобы вставить часть содержимого страницы. Если нужно вставить содержимое целиком, перейдите к подразделу Вставка контента страницы или задачи.
Для того, чтобы вставить сегмент, его необходимо предварительно создать.
Создание сегмента
- Перейдите в режим редактирования страницы, нажав кнопку Редактировать в правом верхнем углу.
- Разместите курсор в том месте, где вы хотите создать сегмент.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке нажмите Сегмент, затем выберите Создать.
- В отобразившееся поле введите название сегмента (обязательно).
- Нажмите клавишу
Enter
или кликните на любое место страницы за пределами сегмента. - Введите или вставьте в сегмент тот контент, который вы хотите переиспользовать на других страницах.
Вставка сегмента на страницу
- Перейдите в режим редактирования страницы, нажав кнопку Редактировать в правом верхнем углу.
- Разместите курсор в том месте, куда вы хотите вставить сегмент.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке нажмите Сегмент, затем выберите Вставить.
- В отобразившемся поле начните вводить название сегмента, который вы хотите вставить.
- Выберите нужный сегмент из отобразившегося списка.
Сегмент будет вставлен в выбранном месте. Над содержимым вставленного сегмента отображается его название и название страницы, на которой этот сегмент был изначально создан.
Удаление созданного сегмента
- Перейдите в режим редактирования страницы, нажав кнопку Редактировать в правом верхнем углу.
- В режиме редактирования страницы нажмите кнопку Удалить в правой части сегмента.
Сегмент будет удален без дополнительных подтверждений. Содержимое сегмента удалено не будет и останется на странице
Если удаляется созданный сегмент, то также будут удалены все вставки этого сегмента на других страницах.
Удаление вставленного сегмента
- Перейдите в режим редактирования страницы, нажав кнопку Редактировать в правом верхнем углу.
- В режиме редактирования страницы нажмите кнопку Удалить в правой части сегмента.
Сегмент будет удален со всем содержимым без дополнительных подтверждений.
Внимание!
Не забывайте нажимать кнопку Опубликовать после внесения всех необходимых изменений на странице.
Вставка контента страницы или задачи
TeamStorm позволяет вставлять в текст страницы описание другой страницы или задачи. Таким образом осуществляется переиспользование контента. Изменения в оригинале автоматически отображаются на вставке.
Вставка контента используется для того, чтобы вставить все содержимое страницы или задачи. Если нужно вставить часть содержимого, перейдите к подразделу Вставка сегмента.
Вставленное содержимое доступно только для чтения, добавление инлайн-комментариев к вставленному содержимому не осуществляется.
Вставка контента
- Перейдите в режим редактирования страницы, нажав кнопку Редактировать в правом верхнем углу.
- Разместите курсор в том месте, куда вы хотите вставить контент.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке выберите Контент страницы или задачи.
- В отобразившееся поле введите название или идентификатор страницы или задачи, контент которых вы хотите вставить.
- Выберите задачу из раскрывшегося списка или перейдите на вкладку Страницы и выберите страницу.
Содержимое выбранной страницы или задачи будет вставлено отдельным блоком, выделяющимся на фоне остального текста.
В верхней части блока располагается активная ссылка на задачу или страницу, из которой вставлен контент.
Удаление вставленного контента
- Перейдите в режим редактирования страницы, нажав кнопку Редактировать в правом верхнем углу.
- В режиме редактирования страницы нажмите кнопку Удалить в правой части блока со вставленным контентом.
Блок будет удален вместе со всем содержимым без дополнительных подтверждений.
Внимание!
Не забывайте нажимать кнопку Опубликовать после внесения всех необходимых изменений на странице.
Вставка динамических ссылок
TeamStorm позволяет вставлять динамические ссылки на задачу или страницу на страницах и в описаниях задач.
Динамическая ссылка отображает актуальную информацию упомянутой задачи или страницы.
Вставка динамической ссылки на задачу
Вставить ссылку на задачу можно двумя способами: при помощи инструментов редактирования или прямым копированием URL-адреса задачи в поле ввода.
Первый способ:
- Перейдите в поле ввода описания задачи или в режим редактирования страницы.
- Разместите курсор в том месте, куда вы хотите вставить ссылку.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке выберите Ссылка на задачу.
- Начните вводить идентификатор или название задачи.
- Выберите нужную задачу из раскрывшегося списка.
Второй способ:
- Откройте карточку задачи, ссылку на которую вы хотите вставить.
- Скопируйте адрес задачи из адресной строки веб-браузера или создайте ссылку как указано в подразделе Создание ссылки на задачу.
- Перейдите в поле ввода описания задачи или в режим редактирования страницы.
- Разместите курсор в том месте, куда вы хотите вставить ссылку и вставьте содержимое буфера обмена (например, при помощи комбинации клавиш
CTRL
+V
).
В результате будет вставлена ссылка на задачу, содержащая:
- тип задачи;
- название задачи;
- идентификатор задачи;
- статус выполнения задачи.
Содержимое ссылки обновляется при изменении параметров задачи (только после обновления страницы).
Удалить ссылку можно тем же способом, что и простой текст.
Вставка динамической ссылки на страницу
Вставить ссылку на страницу можно двумя способами: при помощи инструментов редактора или прямым копированием URL-адреса страницы в поле ввода.
- Перейдите в поле ввода описания задачи или в режим редактирования страницы.
- Разместите курсор в том месте, куда вы хотите вставить ссылку.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке выберите Ссылка на документ.
- Начните вводить название страницы.
- Выберите нужную страницу из раскрывшегося списка.
Второй способ:
- Откройте страницу, ссылку на которую вы хотите вставить.
- Скопируйте адрес страницы из адресной строки веб-браузера или создайте ссылку как указано в подразделе Создание ссылки на страницу.
- Перейдите в поле ввода описания задачи или в режим редактирования страницы.
- Разместите курсор в том месте, куда вы хотите вставить ссылку и вставьте содержимое буфера обмена (например, при помощи комбинации клавиш
CTRL
+V
).
В результате будет вставлена ссылка на страницу, содержащая идентификатор и название страницы.
Название страницы динамически обновляется при его изменении на оригинальной странице.
Удалить ссылку можно тем же способом, что и простой текст.
Вставка динамических ссылок
TeamStorm позволяет вставлять динамические ссылки на задачу или страницу на страницах и в описаниях задач.
Динамическая ссылка отображает актуальную информацию упомянутой задачи или страницы.
Вставка динамической ссылки на задачу
Вставить ссылку на задачу можно двумя способами: при помощи инструментов редактирования или прямым копированием URL-адреса задачи в поле ввода.
Первый способ:
- Перейдите в поле ввода описания задачи или в режим редактирования страницы.
- Разместите курсор в том месте, куда вы хотите вставить ссылку.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке выберите Ссылка на задачу.
- Начните вводить идентификатор или название задачи.
- Выберите нужную задачу из раскрывшегося списка.
Второй способ:
- Откройте карточку задачи, ссылку на которую вы хотите вставить.
- Скопируйте адрес задачи из адресной строки веб-браузера или создайте ссылку как указано в подразделе Создание ссылки на задачу.
- Перейдите в поле ввода описания задачи или в режим редактирования страницы.
- Разместите курсор в том месте, куда вы хотите вставить ссылку и вставьте содержимое буфера обмена (например, при помощи комбинации клавиш
CTRL
+V
).
В результате будет вставлена ссылка на задачу, содержащая:
- тип задачи;
- название задачи;
- идентификатор задачи;
- статус выполнения задачи.
Содержимое ссылки обновляется при изменении параметров задачи (только после обновления страницы).
Удалить ссылку можно тем же способом, что и простой текст.
Вставка динамической ссылки на страницу
Вставить ссылку на страницу можно двумя способами: при помощи инструментов редактора или прямым копированием URL-адреса страницы в поле ввода.
- Перейдите в поле ввода описания задачи или в режим редактирования страницы.
- Разместите курсор в том месте, куда вы хотите вставить ссылку.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке выберите Ссылка на документ.
- Начните вводить название страницы.
- Выберите нужную страницу из раскрывшегося списка.
Второй способ:
- Откройте страницу, ссылку на которую вы хотите вставить.
- Скопируйте адрес страницы из адресной строки веб-браузера или создайте ссылку как указано в подразделе Создание ссылки на страницу.
- Перейдите в поле ввода описания задачи или в режим редактирования страницы.
- Разместите курсор в том месте, куда вы хотите вставить ссылку и вставьте содержимое буфера обмена (например, при помощи комбинации клавиш
CTRL
+V
).
В результате будет вставлена ссылка на страницу, содержащая идентификатор и название страницы.
Название страницы динамически обновляется при его изменении на оригинальной странице.
Удалить ссылку можно тем же способом, что и простой текст.
Вставка файлов и изображений
TeamStorm позволяет вставлять файлы и изображения непосредственно в текст страницы или в описания задач.
Благодаря этому пользователь может просматривать сопутствующий файл, не отрываясь от контекста.
Вставка файла или изображения
Вставка файлов возможна через панель редактирования или копированием непосредственно в поле ввода.
Вставка через панель редактирования
- Перейдите в поле ввода описания задачи или в режим редактирования страницы.
- Разместите курсор в том месте, куда вы хотите вставить файл или изображение.
- На панели инструментов редактора нажмите кнопку (Загрузить файл или изображение).
- В открывшемся системном окне перейдите к нужному файлу, выберите его и нажмите Открыть, после чего дождитесь загрузки файла.
Вставка копированием
- Скопируйте файл или изображение в буфер обмена вашего устройства.
- Перейдите в поле ввода описания задачи или в режим редактирования страницы.
- Разместите курсор в том месте, куда вы хотите вставить файл или изображение.
- Вставьте файл или изображение из буфера обмена и дождитесь его загрузки.
Файл или изображение будут вставлены в соответствующее место в тексте.
Файл вставляется в виде активной ссылки с именем и расширением файла, например, Руководство.docx
.
Открыть файл можно, нажав на ссылку.
Изображение вставляется в виде превью уменьшенного размера. Открыть изображение в большем размере можно, нажав кнопку (Открыть во всю ширину) в правом верхнем углу изображения.
Файлы, включая файлы изображений, также появятся в блоке ВЛОЖЕНИЯ в карточке задачи.
Изменение размеров изображения
Размер изображений, вставленных в тексты страниц и описаний, можно изменять. Это позволяет улучшить восприятие и читаемость включенных в текст иллюстраций.
Чтобы изменить размер изображения:
- Перейдите в режим редактирования страницы или в поле Описание на карточке задачи.
- Нажмите на область изображения и убедитесь в том, что по его контуру отобразилась рамка.
- Захватите любой из углов изображения и перемещайте курсор по диагонали, таким образом меняя размер изображения.
- Отпустите курсор, когда добьетесь наилучшего результата.
Размер изображения изменяется пропорционально изначальным размерам.
Расширенный просмотр изображения
- Откройте изображение во всю ширину.
Справа от изображения отобразится панель инструментов:
- Отразить вертикально;
- Отразить горизонтально;
- Повернуть влево;
- Повернуть вправо;
- Уменьшить изображение;
- Увеличить изображение;
- Закрыть панель (также сворачивает изображение до уменьшенного размера).
- Примените необходимые инструменты, чтобы лучше рассмотреть изображение.
После того, как изображение будет свернуто, изменения на превью сохранены не будут.
Удаление файла или изображения
Удаление файла
Удалить ссылку на файл из текста можно теми же способами, что и обычный текст. Текст ссылки является монолитным и удаляется целиком
(например, нажатием клавиши Backspace
)/
Удаление из текста ссылки на файл не приводит к удалению файла из блока ВЛОЖЕНИЯ.
Удаление файла в блоке ВЛОЖЕНИЯ приводит к удалению активной ссылки из текста, при этом текст ссылки остается.
Удаление изображения из текста
Для того, чтобы удалить изображение из текста, нажмите кнопку (Удалить) в правом верхнем углу превью.
Изображение будет удалено из текста без дополнительных подтверждений.
Удаление изображения из текста не приводит к удалению файла изображения из блока ВЛОЖЕНИЯ.
Удаление файла изображения в блоке ВЛОЖЕНИЯ приводит к удалению превью из текста, при этом в тексте остается пустой блок с надписью Просмотр недоступен.
Вставка информационной панели
TeamStorm позволяет вставлять информационные панели в тексты страниц, описания задач и комментарии.
Информационная панель нужна для того, чтобы визуально выделить важную информацию из остального текста.
Вставка и редактирование панели
- Перейдите в поле ввода текста на странице, в описании задач или в комментарии.
- Разместите курсор в том месте, куда вы хотите вставить информационную панель.
- На панели инструментов редактора нажмите кнопку Вставить объект.
- В раскрывшемся списке выберите Информационная панель.
- Введите или вставьте нужный текст в поле ввода на вставленной панели.
- Нажмите на значок слева от поля ввода текста (по умолчанию
i
) и выберите значок, который будет отображаться на панели. - Наведите курсор на цветное поле справа от выбора значков и на раскрывшейся палитре выберите цвет для панели.
К тексту внутри панели можно применять любые инструменты форматирования, кроме вставки раскрывающегося текста.
Удаление панели
Нажмите кнопку в правой части панели. Панель будет удалена со всем содержимым без дополнительного подтверждения.
Ended: Вставка и форматирование контента
Уведомления ↵
Уведомления
TeamStorm уведомляет пользователя об основных событиях, происходящих в системе и касающихся пользователя:
- назначение на пользователя новой задачи;
- упоминание пользователя в разделе «Страницы», а также в описании или комментарии к задаче;
- изменение ответственного (для всех подписанных на получение уведомлений);
- добавление комментария к задаче;
- изменение статуса задачи;
- изменение даты выполнения задачи;
- изменение страницы;
- создание задачи по заявке.
Примечание
Пользователю не приходят уведомления по изменениям, внесенным им самим.
Индикатор уведомлений со счетчиком новых сообщений находится в правом верхнем углу экрана.
Для просмотра уведомлений нажмите на индикатор.
В открывшемся списке уведомления сгруппированы по задачам и/или страницам и расположены в хронологическом порядке от более новых к более старым. Непрочитанные уведомления выделены полужирным шрифтом и отмечены активной радиокнопкой синего цвета.
Уведомление содержит:
- номер и наименование задачи или страницы с активной ссылкой;
- наименование измененного параметра;
- сведения об авторе изменения;
-
дату и время изменения ( если изменение выполнено в текущий день, то отображается только время).
Отметить все уведомления как прочитанные можно при помощи кнопки Прочитать все.
Отдельные уведомления можно отмечать прочитанными или непрочитанными при помощи радиокнопки, которая подсвечивается, если уведомление выделено курсором.
При нажатии на уведомление откроется карточка задачи или страница, с которой связано уведомление.
См. также:
Подписка на уведомления
TeamStorm автоматически подписывает пользователя на уведомления в следующих случаях:
- автора задачи при создании задачи;
- ответственного за выполнение задачи при его назначении;
- автора страницы при создании страницы;
- пользователя, отредактировавшего страницу, после публикации изменений.
Подписка автоматически отменяется в следующих случаях:
- если пользователь более не является ответственным по задаче (при условии, что он не является автором задачи или не подписан на задачу вручную);
- если пользователь удален из пространства, в котором создана задача или страница.
Подписка на уведомления вручную
-
Перейдите в карточку задачи или на страницу, для которой нужно включить уведомления.
-
Нажмите кнопку Отслеживать в правом верхнем углу карточки задачи или страницы.
На главном экране отобразится надпись Вы подписаны на задачу [идентификатор задачи].
Кнопка Отслеживать изменит пиктограмму и состояние на Перестать отслеживать.
Отмена подписки
-
Перейдите в карточку задачи или на страницу, для которой нужно отключить уведомления.
-
Нажмите кнопку Перестать отслеживать в правом верхнем углу карточки задачи или страницы.
На главном экране отобразится надпись Вы отписаны от задачи [идентификатор задачи].
Кнопка Перестать отслеживать изменит пиктограмму и состояние на Отслеживать.
Почтовые уведомления
Системные уведомления о событиях, касающихся задач или страниц, дублируются на электронную почту.
Почтовые уведомления приходят на адрес электронной почты, который используется для регистрации пользователя в системе.
Уведомление о назначении пользователю задачи отправляется пользователю отдельным письмом. Уведомления об остальных событиях, касающихся задач или страниц, могут группироваться по блокам:
- Изменения с их количеством:
- для задач включают смену ответственного, статуса и даты выполнения;
- для страниц содержат сведения о создании новой версии страницы с указанием автора;
- Комментарии с их количеством.
Внутри блока изменения сортируются по дате создания — новое сверху.
Тело письма содержит кнопку со ссылкой для перехода на полноэкранную карточку задачи или на страницу.
Ended: Уведомления
Ended: Руководство пользователя
Руководство по импорту данных из других систем ↵
Руководство по импорту данных из других систем
Документ содержит руководства по запуску скриптов импорта данных из других систем в TeamStorm
Импорт данных из Jira
- Импорт из серверной Jira
- Импорт из серверной Jira версии 7
- Импорт из облачной Jira
- Импорт межпроектных связей задач из Jira
- Замена ссылок импортированных задач и страниц
Импорт данных из Confluence
Импорт из GitLab
Импорт из Taiga
Импорт данных из Trello
Импорт данных из TeamStorm
Импорт из CSV
Импорт из Jira ↵
Импорт из серверной версии Jira
Документ описывает инструкцию по переносу проекта из серверной версии Jira в TeamStorm.
Исходные данные
Для переноса проекта из Jira потребуются следующие данные:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- URL сервера Jira
- персональный токен доступа пользователя Jira
- ключ проекта Jira, который необходимо перенести
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
- Добавьте пользователей в TeamStorm перед запуском импорта. E-mail или отображаемое имя пользователей TeamStorm должны совпадать с пользователями Jira для автоматического маппинга.
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Создание токена Jira
- Авторизуйтесь в Jira с выбранной учетной записью.
- Создайте и сохраните персональный ключ доступа в профиле пользователя согласно документации Atlassian Using Personal Access Tokens
Основные параметры скрипта
-
<teamstorm_url>
- URL сервера TeamStorm -
<teamstorm_token>
- токен аутентификации пользователя TeamStorm -
<jira_url>
- URL сервера Jira -
<jira_token>
- персональный токен доступа пользователя Jira -
<project_key>
- ключ проекта Jira, который необходимо перенести -
--type
- тип установки Jira
Дополнительные параметры скрипта
Выбор пространства
По умолчанию при импорте для каждого проекта создаётся новое пространство. Этому пространству назначается ключ и название импортируемого проекта Jira.
Для того, чтобы создать пространство с другим ключом и названием, необходимо указать параметры:
Для того, чтобы импортировать проект в существующее пространство необходимо указать параметр:
Если в TeamStorm уже существует пространство с указанным ключом проекта, данные будут импортированы в него.
Импорт scrum-доски
Для импорта scrum-доски в проект необходимо указать в параметрах скрипта её название. В пространстве TeamStorm можно импортировать только одну scrum-доску:
Выбор типа оценки
По умолчанию при импорте задачам в пространстве назначаются оба способа оценки - и в часах, и в SP. Если необходимо оставить только оценку в часах нужно указать параметр:
Если необходимо оставить только оценку в SP нужно указать параметр:
Импорт нескольких проектов в одно пространство
По умолчанию при импорте проекта в существующее пространство или при повторном импорте существующие настройки (созданные в прстранстве типы, атрибуты, процессы) не обновляются. Для того, чтобы обновить настройки укажите параметр:
Импорт задач частями
Для импорта больших объемов задач возможно разбить импорт на несколько частей, указав начальную и конечную позицию в списке задач.
При указании начального индекса будут импортированы все задачи, начиная с указанного индекса:
При указании конечного индекса будут импортированы все задачи, до указанного индекса:
При указании обоих параметров будут импортированы задачи внутри указанного диапазона.
Сохранение данных импорта в файл
Возможно сохранить данные для импорта в файл для последующего запусĸа сĸрипта без доступа в Jira. Необходимо уĸазать путь ĸ файлу, в ĸоторый будет записаны данные для импорта.
Импорт данных из файла
Возможен импорт из сохраненного файла. Данные будут импортироваться из файла без обращения ĸ Jira. Необходимо уĸазать путь ĸ файлу, из ĸоторого будет выполнен импорт.
Cохранение номеров задач исходного проекта
Возможно сохранение номеров задач в исходном проекте при условии импорта одного проекта Jira в пространство TeamStorm. Необходимо уĸазать параметр:
Отключение назначения системных ролей пользователям при импорте
Пользователям, которые добавляются в импортированные пространства, выдаются системные роли. При этом доступные лицензии могут быть исчерпаны при назначении большого кол-ва системных ролей. Возможно назначение задач пользователям без предоставления им лицензий. Для этого необходимо уĸазать параметр:
Импорт записей о списании времени
Возможно импортировать привязанные к задачам записи о списании времени (worklog). При этом дата списания, время и комментарий будут соответсвовать исходным ворклогам. Автором списания будет пользователь пол учетной записью которого выполняется импорт, автор исходного списания будет отражен в комментарии списания. Необходимо уĸазать параметр:
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
```shell python3 jira_migration.py
--type server [дополнительные параметры скрипта] -
Дождитесь выполнения скрипта и проверьте импортированные данные
- В случае возникновения ошибок соединения скрипт можно перезапустить c теми же параметрами, продолжится импорт оставшихся задач.
Результат переноса
В результате будет выполнен перенос данных исходного проекта:
- Проект (перенос ключа, названия проекта и описания)
- Типы задач
- Статусы и Workflow
- Кастомные атрибуты
- Пользователи проекта
- Роли и их разрешения
- Задачи и подзадачи
- Scrum-board (беклог и спринты), при наличии
- Версии
- Компоненты
- Поля задач
- Метки (как кастомное поле)
- Дата выполнения
- Приоритет (как кастомное поле)
- Компоненты (как портфели)
- Версия исправления (как портфель)
- Затронутая версия (как тег)
- Связи задач
- Кастомные поля (строки, числа, даты, метки, списки, пользователи) и опции
- Комментарии
- Вложения
- Ответственный
- Оценка времени (при наличии)
- Описание
- Записи о трудозатратах (при наличии)
Импорт из серверной версии Jira
Документ описывает инструкцию по переносу проекта из серверной версии Jira 7 в TeamStorm.
Исходные данные
Для переноса проекта из Jira потребуются следующие данные:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- URL сервера Jira
- персональный токен доступа пользователя Jira
- ключ проекта Jira, который необходимо перенести
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
- Добавьте пользователей в TeamStorm перед запуском импорта. E-mail или отображаемое имя пользователей TeamStorm должны совпадать с пользователями Jira для автоматического маппинга.
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Создание токена Jira
- Авторизуйтесь в Jira с выбранной учетной записью.
- Создайте и сохраните персональный ключ доступа в профиле пользователя согласно документации Atlassian Using Personal Access Tokens
Основные параметры скрипта
-
- URL сервера TeamStorm -
- токен аутентификации пользователя TeamStorm -
- URL сервера Jira -
- персональный токен доступа пользователя Jira -
- ключ проекта Jira, который необходимо перенести -
--type - тип установки Jira (server7 для версий Jira ниже 8)
Дополнительные параметры скрипта
Выбор пространства
По умолчанию при импорте для каждого проекта создаётся новое пространство. Этому пространству назначается ключ и название импортируемого проекта Jira.
Для того, чтобы создать пространство с другим ключом и названием, необходимо указать параметры:
Для того, чтобы импортировать проект в существующее пространство необходимо указать параметр:
Если в TeamStorm уже существует пространство с указанным ключом проекта, данные будут импортированы в него.
Импорт scrum-доски
Для импорта scrum-доски в проект необходимо указать в параметрах скрипта её название. В пространстве TeamStorm можно импортировать только одну scrum-доску:
Выбор типа оценки
По умолчанию при импорте задачам в пространстве назначаются оба способа оценки - и в часах, и в SP. Если необходимо оставить только оценку в часах нужно указать параметр:
Если необходимо оставить только оценку в SP нужно указать параметр:
Импорт нескольких проектов в одно пространство
По умолчанию при импорте проекта в существующее пространство или при повторном импорте существующие настройки (созданные в прстранстве типы, атрибуты, процессы) не обновляются. Для того, чтобы обновить настройки укажите параметр:
Импорт задач частями
Для импорта больших объемов задач возможно разбить импорт на несколько частей, указав начальную и конечную позицию в списке задач.
При указании начального индекса будут импортированы все задачи, начиная с указанного индекса:
При указании конечного индекса будут импортированы все задачи, до указанного индекса:
При указании обоих параметров будут импортированы задачи внутри указанного диапазона.
Сохранение данных импорта в файл
Возможно сохранить данные для импорта в файл для последующего запусĸа сĸрипта без доступа в Jira. Необходимо уĸазать путь ĸ файлу, в ĸоторый будет записаны данные для импорта.
Импорт данных из файла
Возможен импорт из сохраненного файла. Данные будут импортироваться из файла без обращения ĸ Jira. Необходимо уĸазать путь ĸ файлу, из ĸоторого будет выполнен импорт.
Cохранение номеров задач исходного проекта
Возможно сохранение номеров задач в исходном проекте при условии импорта одного проекта Jira в пространство TeamStorm. Необходимо уĸазать параметр:
Отключение назначения системных ролей пользователям при импорте
Пользователям, которые добавляются в импортированные пространства, выдаются системные роли. При этом доступные лицензии могут быть исчерпаны при назначении большого кол-ва системных ролей. Возможно назначение задач пользователям без предоставления им лицензий.
Для этого необходимо уĸазать параметр:
Импорт записей о списании времени
Возможно импортировать привязанные к задачам записи о списании времени (worklog). При этом дата списания, время и комментарий будут соответсвовать исходным ворклогам. Автором списания будет пользователь пол учетной записью которого выполняется импорт, автор исходного списания будет отражен в комментарии списания.
Необходимо уĸазать параметр:
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
```shell python3 jira_migration.py
--type server7 [дополнительные параметры скрипта] -
Дождитесь выполнения скрипта и проверьте импортированные данные
- В случае возникновения ошибок соединения скрипт можно перезапустить c теми же параметрами, продолжится импорт оставшихся задач.
Результат переноса
В результате будет выполнен перенос данных исходного проекта:
- Проект (перенос ключа, названия проекта и описания)
- Типы задач
- Статусы и Workflow
- Кастомные атрибуты
- Пользователи проекта
- Роли и их разрешения
- Задачи и подзадачи
- Scrum-board (беклог и спринты), при наличии
- Версии
- Компоненты
- Поля задач
- Метки (как кастомное поле)
- Дата выполнения
- Приоритет (как кастомное поле)
- Компоненты (как портфели)
- Версия исправления (как портфель)
- Затронутая версия (как тег)
- Связи задач
- Кастомные поля (строки, числа, даты, метки, списки, пользователи) и опции
- Комментарии
- Вложения
- Ответственный
- Оценка времени (при наличии)
- Описание
- Записи о трудозатратах (при наличии)
Импорт из облачной версии Jira
Документ описывает инструкцию по переносу проекта из облачной версии Jira в TeamStorm.
Исходные данные
Для переноса проекта из Jira потребуются следующие данные:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- URL сервера Jira
- Логин (E-mail) пользователя Jira
- персональный токен доступа пользователя Jira
- ключ проекта Jira, который необходимо перенести
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
- Добавьте пользователей в TeamStorm перед запуском импорта. E-mail или отображаемое имя пользователей TeamStorm должны совпадать с пользователями Jira для автоматического маппинга.
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Создание токена Jira
- Авторизуйтесь в Jira с выбранной учетной записью.
- Создайте и сохраните персональный ключ доступа в профиле пользователя согласно документации Atlassian Manage API tokens for your Atlassian account
Основные параметры скрипта
-
- URL сервера TeamStorm -
- токен аутентификации пользователя TeamStorm -
- URL сервера Jira -
- персональный токен доступа пользователя Jira -
- ключ проекта Jira, который необходимо перенести -
--user - логин (E-mail) пользователя Jira
-
--type - тип установки Jira
Дополнительные параметры скрипта
Выбор пространства
По умолчанию при импорте для каждого проекта создаётся новое пространство. Этому пространству назначается ключ и название импортируемого проекта Jira.
Для того, чтобы создать пространство с другим ключом и названием, необходимо указать параметры:
Для того, чтобы импортировать проект в существующее пространство необходимо указать параметр:
Если в TeamStorm уже существует пространство с указанным ключом проекта, данные будут импортированы в него.
Импорт scrum-доски
Для импорта scrum-доски в проект необходимо указать в параметрах скрипта её название. В пространстве TeamStorm можно импортировать только одну scrum-доску:
Выбор типа оценки
По умолчанию при импорте задачам в пространстве назначаются оба способа оценки - и в часах, и в SP. Если необходимо оставить только оценку в часах нужно указать параметр:
Если необходимо оставить только оценку в SP нужно указать параметр:
Импорт нескольких проектов в одно пространство
По умолчанию при импорте проекта в существующее пространство или при повторном импорте существующие настройки (созданные в пространстве типы, атрибуты, процессы) не обновляются. Для того, чтобы обновить настройки укажите параметр:
Импорт задач частями
Для импорта больших объемов задач возможно разбить импорт на несколько частей, указав начальную и конечную позицию в списке задач.
При указании начального индекса будут импортированы все задачи, начиная с указанного индекса:
При указании конечного индекса будут импортированы все задачи, до указанного индекса:
При указании обоих параметров будут импортированы задачи внутри указанного диапазона.
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
```shell python3 jira_migration.py
--user --type server [дополнительные параметры скрипта] -
Дождитесь выполнения скрипта и проверьте импортированные данные
- В случае возникновения ошибок соединения скрипт можно перезапустить c теми же параметрами, продолжится импорт оставшихся задач.
Результат переноса
В результате будет выполнен перенос данных исходного проекта:
- Проект (перенос ключа, названия проекта и описания)
- Типы задач
- Статусы и Workflow
- Кастомные атрибуты
- Пользователи проекта
- Роли
- Задачи и подзадачи
- Scrum-board (беклог и спринты), при наличии
- Версии
- Компоненты
- Поля задач
- Метки (как кастомное поле)
- Дата выполнения
- Приоритет (как кастомное поле)
- Компоненты (как портфели)
- Версия исправления (как портфель)
- Затронутая версия (как тег)
- Связи задач
- Кастомные поля (строки, числа, даты, метки, списки, пользователи) и опции
- Комментарии
- Вложения
- Ответственный
Импорт межпроектных связей задач из Jira
Документ описывает инструкцию по добавлению связей задач, импортированных из Jira в разные пространства TeamStorm. При импорте отдельного проекта добавляются связи только с задачами этого проекта. Для добавления связей с задачами других проектов необходимо выполнить процедуру, описанную в этой инструкции.
Порядок запуска
Перед запуском скрипта убедитесь, что выполнен импорт всех необходимых проектов, с задачами которых существуют связи. Все связанные задачи должны быть импортированы в TeamStorm перед запуском.
Исходные данные
Для добавления межпроектных связей потребуются следующие данные:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- URL сервера Jira
- персональный токен доступа пользователя Jira
- ключ проекта Jira, связи задач которого нужно перенести
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Создание токена Jira
- Авторизуйтесь в Jira с выбранной учетной записью.
- Создайте и сохраните персональный ключ доступа в профиле пользователя согласно документации Atlassian Using Personal Access Tokens
Основные параметры скрипта
-
- URL сервера TeamStorm -
- токен аутентификации пользователя TeamStorm -
- URL сервера Jira -
- персональный токен доступа пользователя Jira -
- ключ проекта Jira, связи задач которого необходимо перенести -
- ключ пространства TeamStorm, в которое выполнен импорт задач из указанного проекта Jira
Дополнительные параметры скрипта
Выбор пространств для поиска связанных задач
Для оптимизации времени импорта можно ограничить поиск только теми
пространствами, для которых существуют связи. По умолчанию поиск выполняется по
всем пространствам, что может существенно увеличить время импорта.
Для поиска связанных задач только в определенных пространствах можно передать
их ключи через параметр --ts_spaces
:
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
python3 migrate_cross_space_links.py <ts_url> <ts_bearer> <j_url> <j_token> <j_key> <associated_ts_key> [Дополнительные параметры скрипта]
Пример вызова скрипта:
-
Дождитесь выполнения скрипта
- Проверьте наличие связей с задачами других пространств, аналогичные связям исходного проекта в Jira
Замена ссылок на импортированные задачи и страницы
Документ описывает инструкцию по замене ссылок на импортированные из Jira и Confluence задачи и страницы.
После импорта в описанииях и комментариях задач и страниц могут оставаться ссылки на объекты в системах из которых выполнен импорт. Скрипт заменяет их ссылки на аналогичные объекты в TeamStorm.
Порядок запуска
Перед запуском скрипта убедитесь, что выполнен импорт всех необходимых пространств, ссылки на которые существуют в описаниях импортированнх задач.
Все страницы, на которые есть ссылки, должны быть импортированы в TeamStorm перед запуском. Также перед запуском следует увеличить допустимое время редактирования комментариев. Воспользуйтесь инструкцией Настройка допустимого времени редактирования комментариев
Исходные данные
Для добавления межпроектных связей потребуются следующие данные:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- URL сервера Confluence
- персональный токен доступа пользователя Confluence
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Создание токена Confluence
- Авторизуйтесь в Confluence с выбранной учетной записью.
- Создайте и сохраните персональный ключ доступа в профиле пользователя согласно документации Atlassian Using Personal Access Tokens
Основные параметры скрипта
-
- URL сервера TeamStorm -
- токен аутентификации пользователя TeamStorm -
- URL сервера Confluence -
- персональный токен доступа пользователя Confluence
Дополнительные параметры скрипта
Выбор пространств TeamStorm для поиска и замены задач и страниц
По умолчанию поиск и замена будет выполняется по всем пространствам.
Для ограничения замены и поиска только определненными пространствами можно передать их ключи через параметр --ts_spaces
:
Выбор пространств Confluence для поиска страниц
Для оптимизации времени выполнения скрипта можно ограничить поиск страниц в Confluence только теми простанствами, для которых существуют ссылки.
По умолчанию поиск выполняется по всем пространствам, что может существенно увеличить время импорта.
Для поиска страниц только в определенных пространствах, из которых проводился импорт, можно передать их названия через параметр --c_spaces:
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
python3 migrate_description_urls.py <ts_url> \ <ts_bearer> \ <с_url> \ <с_token> [Дополнительные параметры скрипта]
Пример вызова скрипта:
-
Дождитесь выполнения скрипта
- Проверьте, что ссылки на страницы и задачи в описаниях и комментариях заменены на ссылки аналогичных задач и страниц, импортированных в TeamStorm
Ended: Импорт из Jira
Импорт данных из Confluence ↵
Импорт из серверной версии Confluence
Документ описывает инструкцию по переносу пространств из серверной версии Confluence в TeamStorm.
Исходные данные
Для переноса пространств из Confluence потребуются следующие данные:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- ключ существующего пространства TeamStorm, в который будет выполнен импорт
- URL сервера Confluence
- персональный токен доступа пользователя Confluence
- названия простанств Confluence, которые необходимо перенести
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
- Добавьте пользователей в TeamStorm перед запуском импорта. E-mail или отображаемое имя пользователей TeamStorm должны совпадать с пользователями Confluence для автоматического маппинга.
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Создание токена Confluence
- Авторизуйтесь в Confluence с выбранной учетной записью.
- Создайте и сохраните персональный ключ доступа в профиле пользователя согласно документации Atlassian Using Personal Access Tokens
Этапы импорта
Импорт проходит в несколько этапов:
-
Копирование содержимого страниц и их структуры.
На данном этапе создаются аналогичные страницы в TeamStorm, копируются изображения и вложения на страницах, восстанавливается структура страниц.
На этом этапе ссылки на другие страницы сохраняют исходный адрес Confluence.
Для последующего связывания в контент страниц добавляются служебная информация.
-
Исправление ссылок на другие страницы Confluence.
При необходимости заменить исходные ссылки страниц и задач ссылками на аналогичные страницы и задачи в TeamStorm воспользуйтесь инструкцией Замена ссылок на импортированные задачи и страницы.
-
Удаление со страниц служебной информации, необходимой для исправления ссылок и связывания страниц.
В случае, когда необходимо перенести страницы в разные пространства TeamStorm, каждый этап миграции потребуется выполнить для всех пространств отдельно:
- Выполнить этап 1 последовательно для всех импортируемых пространств. На этом шаге потребуется перенести все необходимые пространства в TeamStorm.
- Выполнить этап 2 последовательно для всех пространств. На этом этапе внутренние ссылки в импортированных пространствах будут исправлены.
- Выполнить этап 3 последовательно для всех пространств. На этом этапе служебные временные метаданные на страницах будут удалены. Последующее исправление ссылок и связывание страниц будет невозможно.
Параметры скрипта
-
teamstorm_url
> URL сервера TeamStorm -
teamstorm_token
> токен аутентификации пользователя TeamStorm -
confluence_url
> URL сервера Confluence -
confluence_token
> персональный токен доступа пользователя Confluence -
--type
> тип установки Confluence -
--ts_workspace
> ключ существующего пространства TeamStorm, в который будет выполнен импорт указанных пространств.Примечание
Если параметр не указан для каждого импортируемого пространства Confluence будет создано уникальное пространство в TeamStorm.
-
--spaces
> названия пространств Confluence, которые необходимо перенестиПримечание
Если параметр не указан будут последовательно импортированы все доступные пространства Confluence.
-
Указание выполняемых этапов импорта
Этапы импорта описаны в разделе Этапы импорта
-
--all
запустит этап копирования содеожимого страниц. -
--clean
запустит этап удаления служебной информации. Возможно только после копирования содержимого страниц их структуры. После удаления служебной информации будет невозможно выполнить исправление ссылок и связывание страниц.
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
python3 conf_migration.py --all|clean <teamstorm_url> \ <teamstorm_token> \ <confluence_url> \ <confluence_token> \ --type server --ts_workspace "" --spaces [""]
Пример вызова скрипта:
-
Дождитесь выполнения скрипта и проверьте импортированные данные
- В случае возникновения ошибок соединения скрипт можно перезапустить c теми же параметрами, импорт продолжит перенос страниц.
Результат переноса
В результате будет выполнен перенос из указанных пространств Confluence в заданное пространство TeamStorm:
- Страницы и их структура
- Текст, изображения и их форматирование содержимого страниц
- Контент, генерируемый макросами Confluence в нередактируемом виде (текст и изображения)
- Диаграммы draw.io в редактируемом формате
- Ссылки между страницами
- Упоминания пользователей на страницах
- Вложения страниц
Импорт из облачной версии Confluence
Документ описывает инструкцию по переносу пространств из облачной версии Confluence в TeamStorm.
Исходные данные
Для переноса пространств из Confluence потребуются следующие данные:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- ключ существующего пространства TeamStorm, в который будет выполнен импорт
- URL сервера Confluence
- Логин (E-mail) пользователя Confluence
- персональный токен доступа пользователя Confluence
- названия простанств Confluence, которые необходимо перенести
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
- Добавьте пользователей в TeamStorm перед запуском импорта.
E-mail или отображаемое имя пользователей TeamStorm должны совпадать с пользователями Confluence для автоматического маппинга.
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Создание токена Confluence
- Авторизуйтесь в Confluence с выбранной учетной записью.
- Создайте и сохраните персональный ключ доступа в профиле пользователя согласно документации Atlassian Using Personal Access Tokens
Этапы импорта
Импорт проходит в несколько этапов:
-
Копирование содержимого страниц и их структуры.
На данном этапе создаются аналогичные страницы в TeamStorm, копируются изображения и вложения на страницах, восстанавливается структура страниц. На этом этапе ссылки на другие страницы сохраняют исходный адрес Confluence. Для последующего связывания в контент страниц добавляются служебная информация.
-
Исправление ссылок на другие страницы Confluence.
На данном этапе адреса ссылок на другие страницы заменяются ссылками на аналогичные страницы в TeamStorm. Также старые ссылки на пользователей заменяются на блок упоминания пользователей в TeamStorm.
-
Удаление со страниц служебной информации, необходимой для исправления ссылок и связывания страниц.
В случае, когда необходимо перенести страницы в разные пространства TeamStorm, каждый этап миграции потребуется выполнить для всех пространств отдельно:
- Выполнить этап 1 последовательно для всех импортируемых пространств. На этом шаге потребуется перенести все необходимые пространства в TeamStorm.
- Выполнить этап 2 последовательно для всех пространств. На этом этапе внутренние ссылки в импортированных пространствах будут исправлены.
- Выполнить этап 3 последовательно для всех пространств. На этом этапе служебные временные метаданные на страницах будут удалены. Последующее исправление ссылок и связывание страниц будет невозможно.
Параметры скрипта
-
<teamstorm_url>
- URL сервера TeamStorm -
<teamstorm_token>
- токен аутентификации пользователя TeamStorm -
<teamstorm_space_key>
- ключ существующего пространства TeamStorm, в который будет выполнен импорт -
<confluence_url>
- URL сервера Confluence -
<confluence_token>
- персональный токен доступа пользователя Confluence -
--type
- тип установки Confluence -
--user
- логин (E-mail) пользователя Confluence -
--spaces
- названия пространств Confluence, которые необходимо перенести -
Указание выполняемых этапов импорта
Этапы импорта описаны в разделе Этапы импорта
-
--all
запустит последовательно этапы копирования содеожимого страниц и исправления ссылок. -
--pages
запустит только этап копирования содержимого страниц и их структуры. -
--links
запустит только этап исправления ссылок. Возможно только после копирования содержимого страниц и их структуры. -
--clean
запустит этап удаления служебной информации. Возможно только после копирования содержимого страниц и их структуры. После удаления служебной информации будет невозможно выполнить исправление ссылок и связывание страниц.
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
python3 conf_migration.py --all|pages|links|clean <teamstorm_url> \ <teamstorm_token> <teamstorm_space_key> \ <confluence_url> <confluence_token> --type server \ --user <login> --spaces [""]
Пример вызова скрипта:
-
Дождитесь выполнения скрипта и проверьте импортированные данные
- В случае возникновения ошибок соединения скрипт можно перезапустить c теми же параметрами, импорт продолжит перенос страниц.
Результат переноса
В результате будет выполнен перенос из указанных пространств Confluence в заданное пространство TeamStorm:
- Страницы и их структура
- Текст, изображения и их форматирование содержимого страниц
- Контент, генерируемый макросами Confluence в нередактируемом виде (текст и изображения)
- Диаграммы draw.io в редактируемом формате
- Ссылки между страницами
- Упоминания пользователей на страницах
- Вложения страниц
Ended: Импорт данных из Confluence
Импорт из GitLab
Доĸумент описывает инструĸцию по переносу проеĸта из GitLab в TeamStorm.
Исходные данные
Для переноса проеĸта из GitLab потребуются следующие данные:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- URL сервера GitLab
- персональный тоĸен доступа к API GitLab
- название проеĸта GitLab, ĸоторый необходимо перенести
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
- Добавьте пользователей в TeamStorm перед запусĸом импорта. Отображаемое имя пользователей TeamStorm должны совпадать с пользователями GitLab для автоматичесĸого маппинга.
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Создание тоĸена GitLab
- Авторизуйтесь в GitLab с выбранной учетной записью.
- Создайте и сохраните персональный ĸлюч доступа в профиле пользователя согласно доĸументации GitLab Personal access tokens
Основные параметры скрипта
-
- URL сервера TeamStorm -
- токен аутентификации пользователя TeamStorm -
- ключ существующего пространства TeamStorm, в который будет выполнен импорт -
- URL сервера GitLab -
- персональный тоĸен доступа пользователя GitLab -
- название проекта в GitLab
Дополнительные параметры скрипта
Конфигурация labels
Метаданные, содержащиеся в тегах, можно импортировать в TeamStorm в виде атрибутов, спринтов и портфелей.
Для этого нужно создать конфигурацию и сохранить файл в формате JSON
[
{ "label": "priority", "target_type": "select", "name": "Приоритет" },
{ "label": "sprint", "target_type": "sprint" },
{ "label": ["v1", "v2", "v3"], "target_type": "portfolio", "name": "Релиз" },
{ "label": "component", "target_type": "tag", "name": "Метка" },
{ "label": ["To Do", "New", "Новый"], "target_type": "status", "category": "К выполнению" }
]
label – название первого уровня scoped тега или список тегов одной категории target_type – тип объекта, который нужно создать для заданного тега (select, tag, sprint, portfolio, type, status) name – название создаваемого в TeamStorm атрибута или портфеля
Для применения конфигурации нужно передать её через параметр --labels_config
Например, добавлены метки
Если добавить в конфигурацию
будет создан атрибут «Приоритет» типа «Список» с выбором из опций:
- high
- low
- medium
Задачам с данными метками будут проставлены соответствующие опции атрибута.
Если добавить в конфигурацию
будет создан атрибут «Приоритет» типа «Тег» с тегами high, low, medium. Задачам с данными метками будут проставлены соответствующие теги в атрибуте.
Если добавить в конфигурацию
будет добавлено расширение Agile cо спринтами high, low, medium. Задачи с данными метками будут добавлены в соответствующие спринты.
Если добавить в конфигурацию
будет добавлен портфель «Приоритет» c элементами high, low, medium. Задачи с данными метками будут добавлены в соответствующие элементы портфеля.
Если добавить в конфигурацию
будут добавлены типы задач high, low, medium. Задачам с данными метками будут созданы с соответствующими типами.
Если добавить в конфигурацию
будут добавлены статусы high, low, medium с категорией «К выполнению». Задачам с данными метками будет назначен соответствующий статус. Возможные варианты категорий статусов:
- К выполнению
- В работе
- Выполнено
- Отменено
Выбор пространства
По умолчанию при импорте для ĸаждого проеĸта создаётся новое пространство. Этому пространству назначается указанный ĸлюч и название импортируемого проеĸта GitLab.
Для того, чтобы создать пространство с другим названием, необходимо уĸазать параметр:
Если в TeamStorm уже существует пространство с уĸазанным ĸлючом, данные будут импортированы в него.
Импорт несĸольĸих проеĸтов в одно пространство
По умолчанию при импорте проеĸта в существующее пространство или при повторном импорте существующие настройĸи (созданные в прстранстве типы, атрибуты, процессы) не обновляются.
Для того, чтобы обновить настройĸи уĸажите параметр:
Сохранение данных импорта в файл
Возможно сохранить данные для импорта в файл для последующего запусĸа сĸрипта без доступа в GitLab.
Необходимо уĸазать путь ĸ файлу, в ĸоторый будет записаны данные для импорта.
Импорт данных из файла
Возможен импорт из сохраненного файла. Данные будут импортироваться из файла без обращения ĸ GitLab.
Необходимо уĸазать путь ĸ файлу, из ĸоторого будет выполнен импорт.
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
python3 gitlab_migration.py <teamstorm_url> \ <teamstorm_token> \ <teamstorm_space_key> \ <gitlab_url> \ <gitlab_token> \ <gitlab_project> [дополнительные параметры скрипта]
Пример вызова скрипта:
-
Дождитесь выполнения скрипта и проверьте импортированные данные
В случае возниĸновения ошибоĸ соединения сĸрипт можно перезапустить c теми же параметрами, продолжится импорт оставшихся задач.
Результат переноса
В результате будет выполнен перенос данных исходного проеĸта:
- Проеĸт (перенос названия проеĸта и описания)
- Типы задач
- Статусы задач
- Майлстоуны
- Задачи
-
Поля задач
- Метĸи (как кастомное поле или другой объект в соответствии с конфигурацией)
- Дата выполнения
- Связи задач
- Комментарии
- Ответственный
- Описание
- Оригинальный ID
- Автор (как кастомное поле)
- Дата создания (как кастомное поле)
- Дата обновления (как кастомное поле)
- Вложения
Импорт из Taiga
Доĸумент описывает инструĸцию по переносу проеĸта из Taiga в TeamStorm.
Исходные данные
Для переноса проеĸта из Taiga потребуются следующие данные:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- URL к API сервера Taiga
- логин и пароль пользователя Taiga с правами на импортируемый проект
- идентификатор (slug) проеĸта Taiga, ĸоторый необходимо перенести
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
- Добавьте пользователей в TeamStorm перед запусĸом импорта. Email пользователей TeamStorm должны совпадать с пользователями Taiga для автоматичесĸого маппинга.
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Создание тоĸена GitLab
- Авторизуйтесь в GitLab с выбранной учетной записью.
- Создайте и сохраните персональный ĸлюч доступа в профиле пользователя согласно доĸументации GitLab Personal access tokens
Основные параметры скрипта
-
- URL сервера TeamStorm -
- токен аутентификации пользователя TeamStorm -
- ключ существующего пространства TeamStorm, в который будет выполнен импорт -
- URL сервера Taiga -
- логин пользователя Taiga -
- логпароль пользователя Taiga -
- идентификатор проекта в Taiga
Дополнительные параметры скрипта
Конфигурация импорта
Для импорта статусов нужно передать файл с маппингом статусов на категории статусов. Конфигурацию нужно передать её через параметр --config
Формат файла конфигурации:
{
"status_category_mapping": {
"New": "К выполнению",
"Confirmed": "В работе",
"Needs feedback": "В работе",
"Resolved": "Выполнено",
"Ready": "К выполнению",
"In progress": "В работе",
"Ready for test": "В работе",
"Done": "Выполнено",
"Archived": "Выполнено",
"Closed": "Отменено",
"Needs Info": "В работе",
"Rejected": "В работе",
"Postponed": "В работе"
}
}
Ключ - название статуса в Taiga, значение - название категории статуса в TeamStorm. Категория может иметь следующие значения:
- К выполнению
- В работе
- Выполнено
- Отменено
Выбор пространства
По умолчанию при импорте для ĸаждого проеĸта создаётся новое пространство. Этому пространству назначается указанный ĸлюч и название импортируемого проеĸта GitLab.
Для того, чтобы создать пространство с другим названием, необходимо уĸазать параметр:
Если в TeamStorm уже существует пространство с уĸазанным ĸлючом, данные будут импортированы в него.
Импорт несĸольĸих проеĸтов в одно пространство
По умолчанию при импорте проеĸта в существующее пространство или при повторном импорте существующие настройĸи (созданные в прстранстве типы, атрибуты, процессы) не обновляются.
Для того, чтобы обновить настройĸи уĸажите параметр:
Сохранение данных импорта в файл
Возможно сохранить данные для импорта в файл для последующего запусĸа сĸрипта без доступа в GitLab.
Необходимо уĸазать путь ĸ файлу, в ĸоторый будет записаны данные для импорта.
Импорт данных из файла
Возможен импорт из сохраненного файла. Данные будут импортироваться из файла без обращения ĸ GitLab.
Необходимо уĸазать путь ĸ файлу, из ĸоторого будет выполнен импорт.
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
python3 taiga_import.py <ts_url> <ts_token> <ts_key> <taiga_api_url> <taiga_login> <taiga_password> <taiga_project_slug> --config <config_path> [дополнительные параметры скрипта]
Пример вызова скрипта:
-
Дождитесь выполнения скрипта и проверьте импортированные данные
В случае возниĸновения ошибоĸ соединения сĸрипт можно перезапустить c теми же параметрами, продолжится импорт оставшихся задач.
Результат переноса
В результате будет выполнен перенос данных исходного проеĸта:
- Проеĸт (перенос названия проеĸта и описания)
- Типы задач (Epic, UserStory, Task, Типы Issue)
- Эпики (как порфолио эпиков)
- Статусы задач
- Задачи
- Вложенность задач
- Поля задач
- Комментарии
- Ответственный
- Описание
- Оригинальный ID
- Автор (как кастомное поле)
- Дата создания (как кастомное поле)
- Вложения
- Приоритет (как кастомное поле)
- Важность (как кастомное поле)
Импорт из Trello
Документ описывает инструкцию по переносу доски из Trello в TeamStorm.
Исходные данные
Для переноса проекта из Jira потребуются следующие данные:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- ключ существующего пространства TeamStorm, в который будет выполнен импорт
- файл экспорта доски Trello в формате JSON
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
- Добавьте пользователей в TeamStorm перед запуском импорта. Отображаемое имя пользователей TeamStorm должны совпадать с пользователями Trello для автоматического маппинга.
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Экспорт доски в Trello
- Авторизуйтесь в Trello
- Выполните экспорт доски Trello согласно документации Exporting data from Trello
- Сохраните полученный JSON-файл
Основные параметры скрипта
-
- URL сервера TeamStorm -
- токен аутентификации пользователя TeamStorm -
- ключ существующего пространства TeamStorm, в который будет выполнен импорт -
- путь к JSON-файлу экспорта доски
Дополнительные параметры скрипта
Импорт нескольких досок в одно пространство
По умолчанию при импорте доски в существующее пространство или при повторном импорте существующие настройки (созданные в пространстве типы, атрибуты, процессы) не обновляются. Для того, чтобы обновить настройки укажите параметр:
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
python3 trello_migration.py <teamstorm_url> <teamstorm_token> <teamstorm_space_key> <json_export_path>
Пример вызова скрипта:
-
Дождитесь выполнения скрипта и проверьте импортированные данные
Результат переноса
В результате будет выполнен перенос данных доски:
- Доска в виде папки в пространстве TeamStorm
- Списки задач на доске в виде статусов в процессе
- Поля карточек в виде атрибутов
- Метки как атрибут типа "Тег"
- Участники как атрибут типа "Тег"
- Карточки, как задачи типа "Задача"
- Чеклисты карточки как задачи типа "Чеклист"
- Задачи чеклиста как задачи типа "Подзадача"
- Комментарии карточек
Импорт из другого инстанса TeamStorm
Документ описывает инструкцию по копированию пространства из другого инстанса TeamStorm.
Исходные данные
Для копирования пространства из одного инстанса TeamStorm в другой потребуются следующие данные:
- архив со скриптами импорта
- URL серверов TeamStorm - исходный и целевой
- токены аутентификации пользователей в исходном и целевом инстансах
- ключ пространства в исходном инстансе, которое необходимо скопировать
- ключ пространства в целевом инстансе, в который будет выполнено копирование
Подготовка запуска
- Установите среду выполнения Python 3.11.
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
- Добавьте пользователей в TeamStorm в целевом инстансе перед запуском импорта. E-mail или отображаемое имя пользователей TeamStorm должны совпадать для автоматического маппинга.
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Основные параметры скрипта
-
- URL исходного сервера TeamStorm -
- токен аутентификации пользователя TeamStorm в исходном инстансе -
- ключ пространства TeamStorm, который необходимо скопировать -
- URL целевого сервера TeamStorm -
- токен аутентификации пользователя TeamStorm в целевом инстансе -
- ключ пространства TeamStorm в целевом инстансе, в который необходимо скопировать
Дополнительные параметры скрипта
Копирование нескольких пространств в одно пространство
По умолчанию при импорте в существующее пространство или при повторном импорте существующие настройки (созданные в пространстве типы, атрибуты, процессы) не обновляются. Для того, чтобы обновить настройки укажите параметр:
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
```shell python3 copy_space.py
-
Дождитесь выполнения скрипта и проверьте импортированные данные
Результат переноса
В результате будет выполнено копирование пространства:
- Настройки пространства (типы, процессы, атрибуты)
- Структура папок
- Задачи и их иерархия
- Описание и атрибуты задач
- Ответственные
- Связи задач
- Вложения
- Расширения Портфель - элементы портфеля
- Расширения Agile - бэклог и спринты (без настроек команд)
Импорт из CSV
Документ описывает инструкцию по переносу проекта из CSV в TeamStorm.
Исходные данные
Для переноса проекта из CSV потребуются:
- архив со скриптами импорта
- URL сервера TeamStorm
- токен аутентификации пользователя TeamStorm
- файл с исходными данными для импорта в формате CSV
- конфигурационный файл импорта
Подготовка запуска
- Установите среду выполнения Python 3.11 (или версию выше).
-
Установите следующие модули:
-
Распакуйте архив со скриптами миграции
- Добавьте пользователей в TeamStorm перед запусĸом импорта. Отображаемое имя пользователей TeamStorm должны совпадать с пользователями в CSV для автоматического маппинга.
Получение токена аутентификации TeamStorm
Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".
- Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
- Откройте веб-инспектор браузера.
- Откройте любой запрос TeamStorm.
-
Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").
Основные параметры скрипта
-
- URL сервера TeamStorm -
- тоĸен аутентифиĸации пользователя TeamStorm -
- ключ пространства, в которое будет импортированы задачи -
- путь к CSV-файлу с выгрузкой -
- путь к JSON-файлу с конфигурацией импорта
Дополнительные параметры скрипта
Выбор пространства
По умолчанию задачи импортируются в существующее пространство, указанное в параметре
Для того, чтобы создать новое пространство, необходимо уĸазать ключ нового пространства в параметре
Если в TeamStorm уже существует пространство с указанным ключом, данные будут импортированы в него.
Подготовка файла конфигурации
Файл конфигурации позволяет задать параметры импорта (маппинг полей, форматы разделителей, кодировку, значения по умолчанию, форматы дат и текста и т.п.).
Файл конфигурации состоит из двух блоков:
columns – описывает поля выгрузки CSV и маппинг их на системные и пользовательские атрибуты TeamStorm. params – задает общие параметры импорта.
Общие параметры импорта
Список общих параметров:
"params": {
"task_id_col_name": "#",
"ext_id_col_name": "#",
"root_folder_name": "Импорт",
"date_format": "%d.%m.%Y",
"csv_delimiter": ";",
"options_delimiter": ",",
"text_format": "txt",
"ignore_missing_links": false,
"workflow_name": "Импортированный процесс",
"default_task_type": "Задача",
"default_workflow_name": "Процесс по умолчанию",
"csv_encoding": "utf-8-sig",
"status_category_mapping": {
"New": "К выполнению",
"Confirmed": "В работе",
"Needs feedback": "В работе",
"Resolved": "Выполнено"
}
}
Описание параметров приведено ниже:
-
task_id_col_name
Название колонки в CSV, которая используется для идентификации задачи в других колонках (например, идентификатор связанной, дочерней или родительской задачи) -
ext_id_col_name
Название колонки в CSV, в которой указан идентификатор задачи -
root_folder_name
Имя корневой папки внутри пространства, в которую будут импортированы задачи -
date_format
Описание формата даты, которая используется в выгрузке. Описание формата -
csv_delimiter
Формат разделител CSV-файла -
options_delimiter
Формат разделителя опций значений в CSV-файлеjson "options_delimiter": ","
-
text_format
Формат текста (txt – plain text, md – markdown, html – формат гипертекста) -
ignore_missing_links
Возможность продолжить импорт, если связанная задача не найдена в выгрузке (true – игнорирование ошибок связывания, false – остановка скрипта при возникновении ошибок связывания)json "ignore_missing_links": false
-
workflow_name
Название создаваемого процессаjson "workflow_name": "Импортированный процесс"
-
default_task_type
Название типа, созданного в пространстве по умолчаниюjson "default_task_type": "Задача"
-
default_workflow_name
Название процесса, созданного в пространстве по умолчанию -
csv_encoding
Кодировка CSV-файла -
status_category_mapping
Маппинг категорий статусов в формате { "название статуса": "категория статуса" }
Категория статуса должна соответствовать одной из категорий:
- "К выполнению" - категория, обозначающая задачи, не взятые в работу
- "В работе" - категория, обозначающий задачи, которые выполняются
- "Выполнено" - категория, обозначающая задачи, которые завершены
- "Отменено" - категория, обозначающая задачи, которые не будут завершены
Описание полей выгрузки
Поля, которые необходимо импортировать, необходимо добавить в конфигурацию. Для каждого поля необходимо указать название колонки и тип.
Возможные типы колонок:
Тип | Описание |
---|---|
system | Системный атрибут |
custom | Пользовательский атрибут |
portfolio | Портфель |
link | Связь |
folder | Папка |
Системные поля
Для заполнения системного атрибута необходимо добавить запись:
Возможные типы системных атрибутов:
Тип | Описание | Пример |
---|---|---|
title | Название задачи | json "field_name": "title" |
status_name | Название статуса | json "field_name": "status_name" |
assignee_email | Email пользователя | json "field_name": "assignee_email" |
assignee_name | Имя пользователя | json "field_name": "assignee_name" |
start_date | Планируемая дата начала задачи | json "field_name": "start_date" |
due_date | Планируемая дата выполнения | json "field_name": "due_date" |
description | Описание задачи | json "field_name": "description" |
type | Тип задачи | json "field_name": "type" |
Пользовательские атрибуты
Для создания пользовательского атрибута необходимо добавить запись:
{
"col_name": "Название колонки",
"col_type": "custom",
"attr_type": тип пользовательского атрибута,
"attr_name": "Название атрибута в TeamStorm"
}
Возможные типы пользовательских атрибутов:
Тип | Формат | Пример |
---|---|---|
UniString | строка | json "attr_type": "UniString" |
Number | число | json "attr_type": "Number" |
Date | дата | json "attr_type": "Date" |
UniSelect | выбор из списка | json "attr_type": "UniSelect" |
Tag | тег | json "attr_type": "Tag" |
User | пользователь | json "attr_type": "User" |
TimeDuration | время (в секундах) | json "attr_type": "TimeDuration" |
Портфель
Для создания портфеля необходимо добавить запись:
В результате будет создан портфель с указанным названием, в который будут добавлены элементы, соответствующие значениям в колонке.
Связь
Для колонок, которые задают отношение между задачами, необходимо добавить запись:
Возможные типы связей: | Тип | Формат | |------------|------------------------| | relates | Связь многие ко многим | | blocks | Блокирует задачу | | blocked_by | Заблокирована задачей | | duplicates | Дублирование | | parent | Родительская задача |
Запуск скрипта
- Перейдите в папку со скриптами
-
Выполните команду c необходимыми параметрами
python3 csv_import.py <teamstorm_url> \ <teamstorm_token> \ <teamstorm_space_key> \ <csv_file_path> \ <config_file_path> \ [дополнительные параметры скрипта]
Пример вызова скрипта:
-
Дождитесь выполнения скрипта и проверьте импортированные данные
В случае возниĸновения ошибоĸ соединения сĸрипт можно перезапустить c теми же параметрами, продолжится импорт оставшихся задач.
Результат переноса
В результате в указанном пространстве будут созданы задачи и выполнены настройки типов, атрибутов и процессов для этих задач, в соответствии с конфигурацией и данными выгрузки.
Ended: Руководство по импорту данных из других систем
Ended: Руководства
Release Notes ↵
2024 ↵
2024
Изменения продукта за 2024 год:
Версия 2.247.0
В примечаниях к выпуску TeamStorm версии 2.247.0 также собрано описание изменений, реализованных в более ранних непубличных версиях.
Изменения:
- Расширены возможности публичного API:
- добавлен провайдер аутентификации для пользователя;
- добавлено получение результатов запросов и списков задач (глобальных запросов);
- добавлено расширенное управление пользователями и группами
- Теперь через API нельзя удалять последнюю роль у пользователя в пространстве, а также нельзя удалять роль из пространства, если она является последней у какого-либо пользователя.
- Добавлены вебхуки для интеграции с внешними системами. Теперь можно автоматически отправлять данные о событиях в TeamStorm во внешние системы
- Добавлен виджет Столбчатая диаграмма в дашборды
- Расширены возможности по управлению знаниями:
- теперь вы можете добавлять страницы из базы знаний в избранное;
- блок Избранное со списком избранных страниц отображается на Главной странице
- Добавлено отображение столбцов с атрибутами в элементе Список страниц
- Добавлено массовое изменение атрибутов:
- ответственного;
- атрибута Тег;
- атрибута Пользователь
- Добавлено изменение размеров для графических элементов в описаниях задач и на страницах:
- рисунков;
- объектов Draw.io
- Добавлена возможность указывать время начала списания в дополнение к дате
- Добавлена возможность назначать пользователя, с которым поделились задачей на редактирование, ответственным за выполнение этой задачи
- Портфолио переименованы в портфели в графическом интерфейсе пользователя и в документации
- Добавлено названия портфеля в отображаемом пути к элементу. Теперь можно различить элементы с одинаковыми названиями, находящиеся в разных портфелях
- Другие небольшие улучшения и исправления
Версия 2.227.0
В примечаниях к выпуску TeamStorm версии 2.227.0 также собрано описание изменений, реализованных в более ранних непубличных версиях.
Изменения:
- Добавлено получение и редактирование связей в Public API
- Добавлена настройка видимости запросов
- Добавлена настройка доступа к комментариям на типе задачи
- Добавлена группировка задач на доске:
- по атрибуту Тег;
- по атрибуту Список;
- по атрибуту Пользователь;
- по элементу портфолио;
- по типу родительской задачи;
- по ответственному
- Добавлено отображение атрибутов на карточках доски
- В раздел Дашборды добавлены новые виджеты:
- Счетчик;
- Создано и выполнено;
- Круговая диаграмма
- Добавлена вставка списка страниц в текст и расширены возможности фильтрации списка
- Добавлены группировки в виджете Отчет по трудозатратам:
- по элементу портфолио;
- по тегу
- Добавлена фильтрация по группам пользователей в виджете Отчет по трудозатратам
Версия 2.213.0
В примечаниях к выпуску TeamStorm версии 2.213.0 также собрано описание изменений, реализованных в более ранних непубличных версиях.
Изменения:
- Добавлены новые возможности скриптовой автоматизации: теперь можно можно автоматически рассчитывать значения атрибутов задач по заданным вами правилам и автоматизировать расчет оценки главной задачи, основываясь на оценках дочерних или связанных задач
- Расширены публичные API. Теперь через публичные API доступны:
- управление видимостью комментариев,
- управление связями задач,
- получение удаленных трудозатрат и трудозатрат по дате изменения
- Добавлен HTTP-клиент для скриптовой автоматизации
- Добавлена интеграция с GitFlic
- Теперь во вкладке «Мои задачи» есть разделы «Доступные задачи», «Доступные страницы» и «Мои заявки»
- Добавлено копирование дашбордов
- Добавлена группировка задач по задаче и пользователю в виджете «Учет трудозатрат»
- Добавлена фильтрация задач на диаграмме Ганта
- Добавлена вставка сворачивающегося контента
- Добавлены метки для страниц: теперь можно добавлять ключевые слова к страницам в базе знаний
- Добавлена вставка глобального запроса на страницу
- Добавлены настройки вставки запросов
- Добавлена вставка динамических ссылок на задачу и на страницу в текст других страниц и описаний задач
- Добавлена фильтрация по подзадачам в фильтре «Связь»
- Добавлена фильтрация по спринтам
- Добавлена фильтрация по элементам портфолио
- Добавлено назначение нескольких ролей пользователю в пространстве
- Сделан новый дизайн для панели инструментов форматирования текста
- Изменен хостинг приветственного видеоролика
- В отчете по выполненным в спринте задачам теперь есть особый признак для задач, добавленных после старта спринта
- Добавлено представление «Доска» для элементов портфолио
Версия 2.176.17
В примечаниях к выпуску TeamStorm версии 2.176.17 также собрано описание изменений, реализованных в более ранних непубличных версиях.
Изменения:
- Добавлена скриптовая автоматизация
- Добавлены сложные фильтры
- Добавлена фильтрация по типу связи
- Добавлена фильтрация по атрибуту типа время
- Расширены возможности фильтрации по дате
- Добавлено редактирование атрибутов типов: дата, пользователь, список, тег непосредственно из представления Таблица
- Добавлена возможность поделиться дашбордом
- Добавлен виджет Запрос в дашбордах
- Добавлен виджет Список задач в дашбордах. Виджет позволяет формировать списки задач, отобранные по необходимым критериям из нескольких пространств
- Добавлен поиск пользователей и групп в настройках пространства
- Доработана форма создания заявки: добавлена возможность устанавливать связи с задачами и страницами
Версия 2.165.9
В примечаниях к выпуску TeamStorm версии 2.165.9 также собрано описание изменений, реализованных в более ранних непубличных версиях.
Изменения:
- Доработано Public API:
- доработано управление спринтами;
- доработано управление портфолио;
- Добавлена вставка сегмента страницы
- Добавлено создание персональных дашбордов
- Добавлены заявки — возможность создавать задачи в недоступном пространстве
- Добавлено создание и настройка типов заявок в настройках пространства
- Добавлены уведомления о создании заявки
- Добавлены уведомления об ответе ина инлайн-комментарий
- Добавлено предоставление доступа к странице на чтение
- Добавлено скрытие комментариев к задаче
- Доработано управление фильтрами на панели фильтрации — теперь можно деактивировать фильтр, сохранив выбранные параметры фильтрации
- Добавлена фильтрация задач по дате начала
Версия 2.148.15
В примечаниях к выпуску TeamStorm версии 2.148.15 также собрано описание изменений, реализованных в более ранних непубличных версиях.
Изменения:
- Добавлена поддержка российских ОС на базе Linux
- Доработано Public API:
- доработано управление пользователями и группами пространства;
- доработано управление папками
- Добавлена выгрузка страниц в файл PDF
- Добавлена вставка результатов запроса на страницу
- Добавлено изменение порядка столбцов в странице
- Добавлена автоматизация заполнения атрибутов типа дата при смене статуса
- Добавлено закрепление пространств на главной странице
- Добавлено решение комментариев
- Добавлено предоставление доступа к задаче на редактирование и комментирование
Версия 2.138.6
В примечаниях к выпуску TeamStorm версии 2.138.6 также собрано описание изменений, реализованных в более ранних непубличных версиях.
Изменения:
- Доработано Public API:
- изменено управление статусами;
- дополнено управление процессами;
- дополнено управление типами задач;
- Добавлены инлайн-комментарии
- Добавлено предоставление внешнему пользователю доступа к задаче на чтение
- Добавлено сравнение версий страниц
- Добавлен факт изменения очереди в истории изменения задачи
- Изменен вид Главной страницы
- Добавлено изменение цвета фона для текста
- Добавлен просмотр вложений в режиме редактирования страницы
- Другие небольшие изменения
Версия 2.115.5
В примечаниях к выпуску TeamStorm версии 2.115.5 также собрано описание изменений, реализованных в более ранних непубличных версиях.
Изменения:
- Доработано Public API:
- добавлено управление пространствами;
- добавлено получение трудозатрат;
- другие небольшие изменения;
- Добавлено ранжирование задач в таблицах
- Добавлено создание пространств по шаблонам R\&D и Sales\&Marketing
- Добавлен просмотр комментариев и связей в режиме редактирования страницы
- Добавлено копирование подзадач при копировании задачи
- Изменены цвета статусов спринтов
- Добавлена выгрузка статистики спринта
- Добавлена группировка статусов по категориям в списке выбора статусов
- Добавлена настройка типа оценки на карточке задачи
- В представление Таблица добавлена возможность добавлять столбцы с портфолио. Элементы портфолио отображаются в виде тегов.
Ended: 2024
2023 ↵
2023
Изменения продукта за 2023 год:
Версия 2.96.0
В примечаниях к выпуску TeamStorm версии 2.96.0 также собрано описание изменений, реализованных в более ранних непубличных версиях.
Внимание
Для обновления TeamStorm до версии 2.96.0 требуется обновление Test IT до версии 4.4.4 или выше, рекомендуется последняя версия. Для обновления до версии 2.96.0 необходимо предварительно обновить TeamStorm до версии 2.61.0.
Что нового
- Создано представление Гант для отображения диаграммы Ганта
- Добавлены улучшения, направленные на более удобную работу с диаграммой Ганта
- Добавлены публичные API
- Схема draw.io теперь открывается в полноэкранном режиме
- Недавно завершенные спринты теперь отображаются в верхней части архива
- Добавлен поиск в разделе Мои задачи
- Добавлено отображение и редактирование всех личных списаний трудозатрат пользователя в одной таблице
- Добавлено создание пространства по встроенным шаблонам
- Изменена зона редактирования на странице
- Добавлено автоматическое назначение ответственного при переводе в определенный статус
- Теперь панель инструментов при редактировании страницы отображается всегда, а не только при фокусе на зоне редактора
- Добавлена вставка вложений при создании задачи
- Добавлен раздел Отчеты для администратора пространства
- Добавлено копирование ссылки на страницу
- Добавлено изменение ширины столбцов в таблице
- Улучшена работа фильтров
- Изменена настройка процессов, добавлено визуальное отображение процесса
- Добавлена агрегированная статистика спринтов
- Добавлен отчет со списком задач, выполненных в рамках спринта
- Добавлен отчет со списком задач, исключенных из спринта
- Добавлены почтовые оповещения об упоминаниях пользователя на страницах, в комментариях и в описаниях задач
- Добавлена сортировка колонок на доске
- Добавлена возможность открывать в новом окне задачу из раскрытого списка системных уведомлений
Версия 2.61.0
Внимание
Для обновления TeamStorm до версии 2.61.0 требуется обновление Test IT до версии 4.4.3 или выше, рекомендуется последняя версия. Для обновления до версии 2.61.0 необходимо предварительно обновить TeamStorm до версии 2.33.0
Что нового
- Добавлено отображение списка задач, добавленных в спринт после его запуска
- Добавлено отображение списка задач, взятых в спринт на момент его запуска
- Добавлено отображение списка задач, невыполненных в спринте
- Добавлено отображение списка задач, по которым менялась оценка в ходе выполнения спринта
- Добавлен переход в профиль пользователя, в котором формируется токен, при нажатии на опцию Профиль
- Добавлена дополнительная величина для оценки сложности задач — Сторипоинты (Story Points)
- Теперь при создании типа задач по умолчанию будут выбраны сразу оба типа оценки: в часах и в сторипоинтах
- Добавлен раздел "Мои задачи"
- Добавлено сохранение черновика в разделе "Страницы"
- Добавлена настройка ширины панели навигации
- Добавлен атрибут "Дата начала"
- Изменен порядок отображения пользовательских атрибутов в выгрузке
- Добавлено динамическое оглавление на страницах и в описаниях задач
- Добавлено изменение типа уже созданной задачи
- Добавлено редактирование комментариев
- Добавлена подсветка папки, в которую перетаскивается задача через панель навигации
Версия 2.33.3
Внимание
Для обновления TeamStorm до версии 2.33.3 требуется обновление Test IT до версии 4.4.0 или выше, рекомендуется последняя версия Для обновления до версии 2.33.3 необходимо предварительно обновить TeamStorm до версии 2.0.0
Что нового
- Добавлен приветственный видеоролик при первом входе в систему
- Добавлена системная роль "Администратор TeamStorm"
- Настройка wiki при установке теперь не требуется
- Добавлена интеграция с Test IT
- Добавлена вставка диаграмм UML, BPMN, ER
- Добавлено перемещение модальных окон
- Добавлена диаграмма сгорания в портфолио и спринтах
- Добавлено копирование настроек пространства
- Изменен редактор в разделе "Страницы"
- В поле ввода комментариев теперь можно добавлять чек-листы
- Исключено отображение прогресса при добавлении метрики, теперь прогресс отображается только после Что нового начальных значений
- Добавлено отображение прогресса задачи исходя из ее статуса
- Превью любой задачи теперь можно открыть в любой папке и расширении
- Переключение между папками и расширениями теперь не приводит к закрытию карточки задачи
- Добавлено отображение изменений прогресса в истории задачи
- Добавлено массовое назначение очереди задачам
- Добавлено массовое назначение задач дочерними по отношению к родительской
- Добавлено массовое назначение элементов портфолио
- Добавлено массовое перемещение задач
- Теперь тег элемента портфолио автоматически назначается дочерним задачам, если родительской задаче присвоен такой тег
- В представление "Таблица" добавлен столбец с отображением прогресса
- Переведены на русский язык названия статусов, категорий статусов, процессов и типов задач
- Добавлен просмотр и восстановление версий страниц в разделе Страницы
- Добавлена возможность оставлять комментарии к страницам
- Добавлено упоминание пользователя в разделе Страницы
- Добавлено перемещение страниц
- Добавлено динамическое изменение названий вкладок в браузере при открытии страниц
- Добавлены почтовые уведомления об изменении описания
- Добавлено копирование представлений при создании спринта
Версия 2.0.0
Внимание
Для обновления TeamStorm до версии 2.0.0 требуется обновление Test IT до версии 4.2.4 или выше, рекомендуется последняя версия Для обновления до версии 2.0.0 необходимо предварительно обновить TeamStorm до версии 1.34.0
Что нового
- Добавлена система управления знаниями (раздел "Страницы")
- Добавлены настройки ролевой модели пространства
- Изменена панель инструментов форматирования текста
- Добавлена вставка таблиц в описание
- Добавлена выгрузка запросов
- Добавлены почтовые уведомления
- Оптимизировано отображение представления "Доска"
- В выгрузку добавлено отношение задачи к портфолио
Версия 1.34.0
Внимание
Для обновления TeamStorm до версии 1.34.0 требуется обновление Test IT до версии 4.2.3
Что нового
- Добавлен просмотр информации о портфолио
- Добавлен путь к полноэкранной карточке
- При установке связи теперь автоматически проставляется «Связана»
- Добавлено отображение новых колонок в таблице: спринт и трудозатраты
- Добавлено подключение к GitLab
- Другие небольшие улучшения
Версия 1.32.0
В примечаниях к выпуску TeamStorm версии 1.32.0 также собрано описание изменений, реализованных в версии 1.31.0.
Внимание
Для обновления TeamStorm до версии 1.32.0 требуется обновление Test IT до версии 4.2.0
Что нового
- Добавлено упоминание пользователя в задаче
- Добавлено управление портфолио
- Добавлено формирование запросов со списком задач
- Добавлен архив спринтов
- Добавлена поддержка создания пространств с удаленным префиксом
- Добавлена история изменений описания задачи
- Добавлена возможность удаления процессов
- Добавлен параметр "Следующая неделя" для фильтра "По дате выполнения"
- В результатах поиска назначенные на пользователя задачи теперь отображаются первыми в списке
- Добавлены пользовательские представления задач
- Добавлен переход в полноэкранную карточку задачи из короткой карточки
- Добавлено копирование задач
- Добавлено отображение версии продукта
- Цвет аватарки теперь рассчитывается на основе id, а не имени
- Добавлен виджет уведомлений на главной странице
- Добавлена сортировка подзадач по дате создания
- Добавлена индикация наличия задач, не показанных на доске
Версия 1.30.0
В примечаниях к выпуску TeamStorm версии 1.30.0 также собрано описание изменений, реализованных в версиях 1.28.0 и 1.29.0.
Внимание
Для обновления TeamStorm до версии 1.30.0 требуется обновление Test IT до версии 4.0.2
Что нового
- Изменена процедура установки системы (с версии 1.30.0)
- Добавлен экран выбора продукта
- Закреплена панель инструментов в описании при скроллинге
- Добавлены настройки статусов и процессов доски
- Добавлены индикация и просмотр уведомлений
- Добавлена подписка на получение уведомлений
- Добавлено отображение отношения объема спринта к оценке спринта
- Добавлено копирование команды и ее емкости из предыдущего спринта в текущий спринт
- Не отображаются кнопки раскрытия папки, если вложенных папок нет
- Добавлены тултипы на инструменты редактирования текста
Версия 1.27.0
В примечаниях к выпуску TeamStorm версии 1.27.0 также собрано описание изменений, реализованных в версиях 1.24.0, 1.25.0 и 1.26.0.
Что нового
- Добавлено форматирование текста в комментариях к задаче
- Убран уровень Extensions в дереве навигации
- Добавлена поддержка групп в ролевой модели пространства
- Добавлен вывод даты завершения на карточку и в таблицу
- Добавлен фильтр по атрибуту типа "Список"
- Добавлен фильтр по атрибуту типа "Тег"
- Добавлен фильтр по атрибуту типа "Дата" и системным атрибутам задач типа "Дата"
- Добавлены фильтры по автору создания, автору Что нового и атрибуту типа "Пользователь"
- Убрано поле "Спринт", если оно не заполнено
- Добавлен отклик о перемещении задач в проводник
- Добавлено ранжирование задач на доске
- Добавлен фильтр по атрибуту типа "Число"
- Добавлено отображение количества задач в папке и количества задач, которые были отфильтрованы
- Добавлена возможность выгрузки пространства для роли "Пользователь"
Ended: 2023
2022 ↵
2022
Изменения продукта за 2022 год:
Версия 1.23.0
В примечаниях к выпуску TeamStorm версии 1.23.0 также собрано описание функциональных возможностей, реализованных в более ранних версиях продукта.
Мы сделали это для того, чтобы не перегружать пользователя описанием этапов разработки и сформировать цельное представление о рабочей версии продукта.
Что нового
- В навигационную панель добавлена справка со ссылками на документацию и сайт TeamStorm
- Реализована панель фильтров с возможностью добавлять и убирать фильтры
- Переработан механизм фильтрации по ответственному
- Добавлена фильтрация по типу
- Добавлена выгрузка задач и списаний из пространств и папок
- Добавлена системная роль Core-админ
- Добавлены лицензии TeamStorm;
- Добавлена системная роль TeamStorm User
- Добавлена возможность проставлять задачам оценку и списывать в них время
- Добавлено визуальное отображение типа задачи с цветом и иконкой во всех местах
- Расширена функциональность фильтра по статусу с возможностью выбирать категории статусов, видеть релевантные статусы и указывать оператор "Не равен"
- В настройки атрибутов пространства добавлена возможность указывать тип для связывания, в настройки типов добавлена возможность указывать атрибуты, изменена секция атрибутов
- Добавлена иерархия в таблице
- Добавлена сортировка в таблице
- Добавлена типизация: создание типов (с иконкой и цветом), редактирование типов, удаление типов
- Добавлена ролевая модель Администратора пространства
- Добавлен атрибут типа "Пользователь"
- У папок можно включить расширение Agile для управления беклогами и спринтами
- Добавлена возможность вставить код в editor
- В колонке добавлена возможность отобразить колонки Дата созданиия/изменения, Автор создания/изменения
- Для префиксов введено ограничение: только латиница и цифры. Для генерации префиксов из кириллического названия производится транслитерация
- У пространств появился префикс, который использует в адресной строке и в идентификаторе задач
- Добавлена возможность настраивать какие колонки в таблице отображаются, включая атрибуты
- Добавлена настройка переходов между статусами в процессах
- Добавлен полноэкранный просмотр вложений-картинок
- Добавлена возможность удалять комментарии
- При создании тега он сразу же добавляется в выбранные
- У связанных и дочерних задач можно изменять статус и ответственного прямо в секциях без перехода на конкретную задачу
- Добавлена возможность сменить ответственного на главной странице
- Добавлен атрибут типа "Тег"
- Добавлена фильтрация статусов на доске по процессам
- Добавлен быстрый выбор текущего пользователя в фильтре по исполнителю
- При создании задачи в модальном окне реализовано добавление Ответственного
- Добавлено мини-превью картинки
- Добавлен новый компонент выбора статуса
- Реализовано добавление процесса в пространство
- Добавлена смена процесса для задачи
- Добавлено отображение на карточках доски количества комментариев и наличия вложений
- Добавлено отключение колонок на доске при выборе статусов в фильтре
- Добавлено представление "Доска"
- Теперь при создании задачи по умолчанию выбирается тип Task
- Реализована возможность добавлять пользователей в пространство
- Добавлены преднастроенные типы связи (relates, blocks, duplicates)
- Добавлена возможность создавать атрибут для списка с выбором одной опции
- Добавлен переход к задаче по ссылке
- Добавлена возможность кликнуть правой кнопкой мыши на задачу из списка, чтобы открыть ее в другой вкладке
- Добавлена возможность отправлять комментарий по нажатию на клавишу
Enter
- Пайп даты теперь отображает "относительные" значения
- Изменен раздел настроек пространства
- Добавлено удаление пространства
- Реализовано изменение значения поля через таблицу
- Добавлен поиск задач в представлениях по названию
- При отсутствии выбранных опций множественный выбор не отображает крестик
- Добавлено скрытие/раскрытие секций
- Добавлен компонент фильтра по ответственному
- Добавлена загрузка и отображение списка файлов
- Добавлен компонент фильтра по статусу
- Добавлено отображение версии продукта на странице авторизации
- В карточку задачи добавлена работа с атрибутами
- Добавлено отображение версии билда в атрибуте документа
- Добавлен атрибут типа "Дата"
- Добавлены статусы Review, Testing и Ready For Testing в карточку задачи
- Добавлен фильтр назначенных на пользователя задач по группам статусов
- Удалены колонки "Автор" и "Текст" у Ответственного в карточке задачи
- Добавлено создание атрибута через пространство
- Добавлено атрибут типа "Число"
- Добавлено хранение значений атрибутов в карточке задачи
Ended: 2022
Ended: Release Notes
API ↵
Общая информация ↵
Общая информация
Введение
REST API предоставляет способ интеграции TeamStorm с внешними системами.
С помощью API доступны:
- кастомизация пространств, типов, процессов, атрибутов;
- администрирование пользователей, групп и ролей;
- получение, создание, обновление и удаление сущностей;
- загрузка и выгрузка файлов;
- и т.д.
Swagger-документация
Описание методов API доступно также в Swagger.
Для перехода в Swagger через адресную строку браузера добавьте постфикс /cwm/public/swagger/
к адресу системы TeamStorm,
затем перейдите по получившемуся адресу.
Например, https://teamstorm.io/cwm/public/swagger
,
где https://teamstorm.io
необходимо заменить на адрес системы вашей компании.
Аутентификация
TeamStorm REST API использует аутентификацию на основе токена. Это значит, что нужно передавать токен в каждом запросе к API. Токен постоянный, одинаковый для всех запросов. Нет необходимости генерировать новый токен в каждой сессии. При аутентификации с использованием токена, действует набор привилегий пользователя, выписавшего токен.
Пагинация
Результаты запросов, которые могут возвращать большое количество объектов, возвращаются с использованием пагинации для упрощения их обработки.
Для таких запросов возможно указать кол-во объектов, возвращаемых на странице
результатов, через параметр maxItemsCount
(по умолчанию 50 объектов) и токен
определенной страницы через параметр fromToken
.
GET /resource?fromToken=&maxItemsCount=
Успешный пагинированный ответ запроса содержит следующие параметры:
Описание параметров
fromToken
Токен текущей страницы результатов запроса
maxItemsCount
Кол-во запрошенных объектов в результате запроса
nextToken
Токен следующей страницы результатов
Форматирование текста
Описание и комментарии задач задаются в формате HTML с ограниченным набором тегов. Допустимые теги:
Элементы текста, теги и примечания
Заголовки
<h1> <h2> <h3> <h4> <h5> <h6>
Параграф
</p>
<p style="text-align: center">
Для выравнивания параграфа по левому краю, центру и правому краю можно указать:style="text-align: center | left | right"
Цвет текста
<span style="color: rgb(246, 26, 30)">
Список поддерживаемых цветов: rgb(0, 0, 0) rgba(151, 160, 175, 1) rgba(246, 26, 30, 1) rgb(246, 149, 30) rgba(255, 213, 8, 1) rgba(164, 241, 164, 1) rgba(55, 170, 87, 1) rgba(36, 156, 237, 1) rgba(48, 103, 206, 1) rgba(3, 37, 116, 1) rgba(101, 69, 151, 1) rgba(255, 255, 255, 1)
Жирный
<strong>
Курсив
<em>
Подчеркнутый
<u>
Зачеркнутый
<s>
Подстрочный
<sub>
Надстрочный
<sup>
Фрагмент кода
<code>
Упорядоченный список
<ol>
Неупорядоченный список
<ul>
Элемент списка
<li>
Ссылка
<a target="_self" rel="noopener noreferrer nofollow" href="http://teamstorm.io">
Чек-лист
<ul data-type="taskList">
Элемент чек-листа
<li data-checked="false"
data-type="taskItem"><label>
<input type="checkbox"><span></span></label>
<div>`
### Изображение
> В атрибуты attachmentid и data-fileid требуется установить идентификатор вложения
```html
<app-editor-image alt="" title=""
data-attachmentid="4c28e024-95e0-4dc9-b427-211b208d2271"
data-imagealign="left"
data-fileid="4c28e024-95e0-4dc9-b427-211b208d2271"
data-filetype="image/gif">
Диаграмма drawio
В атрибут data-node-input требуется установить идентификатор вложения
Содержание
Блок кода
<pre>
Разделитель
<hr>
Таблица
<table>
Тело таблицы
<tbody>
Строка таблицы
<tr>
Ячейка заголовка таблицы
colspan
- объединение ячеек по горизонталиrowspan
- объединение ячеек по вертикали
Ячейка таблицы
<td colspan="1"
rowspan="1"
style="width: nullpx; background-color: rgb(36, 156, 237)"
data-backgroundcolor="rgb(36, 156, 237)">
colspan
- объединение ячеек по горизонталиrowspan
- объединение ячеек по вертикалиbackground-color
,data-backgroundcolor
- цвет фона ячейки из списка допустимых цветов
Формат даты и времени
Даты UTC приводятся по стандарту ISO 8601:
Обработка ошибок
200
— общий успех201
— успешное создание204
— успех без контента400
— некорректный запрос от пользователя- Неправильный (несуществующий) параметр запроса
- Неправильный (несуществующий) параметр тела запроса
- Дублирование параметра запроса
- Отсутствие обязательного параметра в модели тела запроса
401
— неавторизованный запрос403
— отсутствие доступа404
— недоступный ресурс429
— слишком много запросов5xx
— для внутренних ошибок
Модель ошибки:
Ended: Общая информация
Функции API ↵
Функции API
- Провайдеры аутентификации
- Подключения OpenID Connect
- Задачи
- Значения атрибутов задачи
- Комментарии задачи
- Вложения задачи
- Управление доступом к задачам
- Пользовательские атрибуты
- Связи
- Папки пространства
- Портфели
- Спринты и Agile
- Статусы
- Типы задач
- Пользователи
- Группы
- Рабочие процессы
- Пространства
- Пользователи пространства
- Группы пространства
- Роли
- Запросы
- Трудозатраты
- Интеграции с Git
Провайдеры аутентификации ↵
Провайдеры аутентификации
Получение списка провайдеров
Возвращает список провайдеров аутентификации.
Доступно пользователю с любой системной ролью.
GET /cwm/public/api/v1/providers
Тело успешного ответа 200
200
Описание возвращаемой модели
providers
Список провайдеров
Описание возвращаемой модели провайдера аутентификации
id
Идентификатор провайдера аутентификации
name
Название провайдера аутентификации
providerType
Тип провайдера аутентификации
Значения типа:
Local
ActiveDirectory
OpenIdConnect
KerberosActiveDirectory
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Провайдеры аутентификации
Подключения OpenID Connect ↵
Подключения OpenID Connect
- Получение списка подключений OpenID Connect
- Создание подключения OpenID Connect
- Удаление подключения OpenID Connect
- Создание пользователя для OpenID Connect
Запросы доступны только для пользователей с системной ролью Администратор Core
Получение списка подключений OpenID Connect
Возвращает список созданных подключений OpenID Connect
GET /cwm/public/api/v1/open-id/connections
Параметры и описание запроса
Нет параметров
Тело успешного ответа 200
[
{
"name": "string",
"authority": "string",
"isEnabled": true,
"imageUrl": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
]
Описание возвращаемой модели OpenID Connect
name
Название подключения OpenID Connect
authority
Адрес провайдера, через которого вы настраиваете подключение
isEnabled
Включен ли элемент в интерфейсе
true
/false
imageURL
URL-адрес иконки провайдера
id
Идентификатор соединения
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Создание подключения OpenID Connect
Создает новое подключение OpenID Connect
POST /cwm/public/api/v1/open-id/connections
Параметры запроса
Нет параметров
Тело запроса
{
"name": "string",
"authority": "string",
"clientId": "string",
"clientSecret": "string",
"metadataAddress": "string",
"scope": [
"string"
],
"isEnabled": true
}
Параметры тела запроса
name
Название подключения OpenID Connect
authority
Адрес провайдера, через которого вы настраиваете подключение
clientID
Идентификатор приложения провайдера
clientSecret
Cекретный ключ приложения провайдера
metadataAddress
Адрес получения метаданных
Scope
Данные о пользователях, которые необходимо получить из внешнего провайдера для входа в систему. Минимальный набор данных:
OpenID
,profile
.
isEnabled
Включен ли элемент в интерфейсе
true
/false
Тело успешного ответа 200
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Удаление подключения OpenID Connect
Удаляет подключение OpenID Connect
DELETE /cwm/public/api/v1/open-id/connections/{connectionId}
Параметры запроса
connectionId
(обязательный)
Идентификатор подключения
connections/3fa85f64-5717-4562-b3fc-2c963f66afa6
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Создание пользователя для OpenID Connect
Добавляет пользователя для OpenID Connect
POST /cwm/public/api/v1/open-id/connections/{connectionId}/users
Параметры запроса
connectionId
(обязательный)
Идентификатор подключения
connections/3fa85f64-5717-4562-b3fc-2c963f66afa6/users
Тело запроса
{
"externalId": "string",
"firstName": "string",
"lastName": "string",
"middleName": "string",
"userName": "string",
"displayName": "string",
"email": "user@example.com"
}
Параметры тела запроса
externalId
(обязательный)
Идентификатор пользователя во внешней системе
firstName
Имя пользователя
"firstName": "ivan"
lastName
Фамилия пользователя
"lastName": "petrov"
middleName
Отчество или второе имя пользователя
userName
(обязательный)
Логин пользователя
"userName": "admin"
displayName
(обязательный)
Отображаемое имя пользователя
"displayName": "System Administrator"
email
(обязательный)
Адрес электронной почты пользователя
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Описание возвращаемой модели пользователя
id
Идентификатор пользователя
displayName
Отображаемое имя пользователя
username
Логин пользователя
Электронная почта пользователя
providerId
Идентификатор провайдера
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Подключения OpenID Connect
Задачи ↵
Задачи
Задачи
Создание задачи
Создает новую задачу.
POST /cwm/public/api/v1/workspaces/{workspace}/workitems
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело запроса
{
"name": "string",
"description": "string",
"type": "string",
"workflow": "string",
"status": "string",
"dueDate": "2023-12-27T10:33:28.999Z",
"assignee": "string",
"sprintId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"originalEstimate": 0,
"parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"attributes": [
{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": "string"
},
{
"type": "Number",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": 0
},
{
"type": "Date",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": "2023-12-27T10:33:28.999Z"
},
{
"type": "UniSelect",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": "string"
},
{
"type": "Tag",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": [
"string"
]
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"userName": "string"
}
},
{
"type": "TimeDuration",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": 0
}
],
"portfolioElementIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
]
}
Параметры и описание тела запроса
name
(обязательный)
Название задачи
name: {str:255}
description
Описание задачи
name: {str:MAX}
type
(обязательный)
Название или идентификатор типа
type: "Дефект"
type: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
workflow
Название или идентификатор процесса
workflow: "Процесс для дефектов"
workflow: "b6ac719f-7de5-470a-997c-a83050d26b11"
status
Название или идентификатор статуса
status: "REQ TEST"
status: "b6ac719f-7de5-470a-997c-a83050d26b11"
dueDate
Дата выполнения
dueDate: "2022-03-03T21:59:08Z"
assignee
Логин или идентификатор ответственного
assignee: "ivan.ivanov"
assignee: "b6ac719f-7de5-470a-997c-a83050d26b11"
sprintId
Идентификатор спринта
sprintId: "b6ac719f-7de5-470a-997c-a83050d26b11"
originalEstimate
Оценка в секундах
originalEstimate: 56000
parentId
(обязательный)
Идентификатор папки или родительской задачи
parent: "b6ac719f-7de5-470a-997c-a83050d26b11"
attributes
Список кастомных атрибутов (идентификатор + значение атрибута)
Описание моделей значений атрибутов приведено ниже
portfolioElementIds
Список идентификаторов элементов портфеля
portfolioElementIds: ["b6ac719f-7de5-470a-997c-a83050d26b11"]
Описание моделей значений атрибутов
UniString
Строка {str:255}
"value": "Some string"
Number
Число
"value": -145.454443435345454
Date
Дата/время в формате ISO
"value": "2022-03-03T21:59:08Z"
UniSelect
Значение опции из списка
"value": "Medium"
Tag
Список опций тега
"value": ["tag 1", "tag 2"]
User
Логин пользователя или
"value": {"username": "roman.cherepanov"}
id
Идентификатор пользователя
"value": {"id": "b6ac719f-7de5-470a-997c-a83050d26b11"}
TimeDuration
Время в секундах (целое)
"value": 56000
Ошибки запроса
400
Bad Request
Неправильный (несуществующий) параметр запроса Неправильная модель тела запроса Отсутствие обязательного параметра в модели тела запроса
401
Unauthorized
Не авторизованный запрос
403
Forbidden
Отказ доступа к объекту
500
Server Error
Внутренняя ошибка сервиса
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"type": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"status": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"endDate": "2023-12-27T10:40:03.951Z",
"createdDate": "2023-12-27T10:40:03.951Z",
"dueDate": "2023-12-27T10:40:03.951Z",
"assignee": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"sprint": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"folder": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"originalEstimate": 0,
"timeSpent": 0,
"remainingEstimate": 0,
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"parent": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nodeType": "Folder"
},
"attributes": [
{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "string"
},
{
"type": "Number",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
},
{
"type": "Date",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "2023-12-27T10:40:03.951Z"
},
{
"type": "UniSelect",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
{
"type": "Tag",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
},
{
"type": "TimeDuration",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
}
],
"portfolios": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"elements": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
],
"workspace": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
}
}
Модель задачи описана в таблице "Описание возвращаемой модели задачи" подраздела "Получение задачи".
Изменение задачи
Изменяет один или несколько параметров задачи. Для изменения атрибутов задачи можно использовать методы изменения атрибутов задачи.
PATCH /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
{
"name": "string",
"description": "string",
"type": "string",
"workflowId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "string",
"startDate": "2024-01-29T12:12:57.460Z",
"dueDate": "2023-12-27T11:00:34.853Z",
"assignee": "string",
"sprintId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"originalEstimate": 0,
"storyPoints": 0,
"parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"portfolioElementIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
]
}
Параметры и описание тела запроса
name
(обязательный)
Название задачи
name: {str:255}
description
Описание задачи
name: {str:MAX}
type
(обязательный)
Название или идентификатор типа
type: "Дефект"
type: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
workflowId
Идентификатор процесса
workflowId: "b6ac719f-7de5-470a-997c-a83050d26b11"
status
Название или идентификатор статуса
status: "REQ TEST"``status: "b6ac719f-7de5-470a-997c-a83050d26b11"
startDate
Дата начала задачи
startDate: "2022-03-03T21:59:08Z"
dueDate
Дата выполнения
dueDate: "2022-03-03T21:59:08Z"
assignee
Логин или идентификатор ответственного
assignee: "ivan.ivanov"``assignee: "b6ac719f-7de5-470a-997c-a83050d26b11"
sprintId
Идентификатор спринта
sprintId: "b6ac719f-7de5-470a-997c-a83050d26b11"
originalEstimate
Оценка в секундах
originalEstimate: 56000
storyPoints
Оценка в Story Points
storyPoints: 25
parentId
Идентификатор папки или родительской задачи
parent: "b6ac719f-7de5-470a-997c-a83050d26b11"
portfolioElementIds
Список идентификаторов элементов портфеля
portfolioElementIds: ["b6ac719f-7de5-470a-997c-a83050d26b11"]
Ошибки запроса
400
Bad Request
Неправильный (несуществующий) параметр запроса Неправильная модель тела запроса
403
Forbidden
Отказ доступа к объекту
500
Server Error
Внутренняя ошибка сервиса
401
Unauthorized
Не авторизованный запрос
Тело успешного ответа 200
json
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"startDate": "2023-12-29T10:52:30.494Z",
"endDate": "2023-12-29T10:52:30.494Z",
"status": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"responsibles": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
],
"portfolio": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
]
}
Модель задачи описана в таблице "Описание возвращаемой модели задачи" подраздела "Получение задачи".
Удаление задачи
Удаляет задачу.
DELETE /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}
Параметры и описание запроса
workspace (обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem (обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Ошибки запроса
400
Bad Request
Неправильный (несуществующий) параметр запроса
401
Unauthorized
Не авторизованный запрос
403
Forbidden
Отказ доступа к объекту
500
Server Error
Внутренняя ошибка сервиса
Успешный статус запроса 204
.
Ended: Задачи
Значения атрибутов задачи ↵
Значения атрибутов задачи
Получение значений атрибутов задачи
Возвращает список заполненных атрибутов задачи.
GET /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attributes
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"items": [
{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "string"
},
{
"type": "Number",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
},
{
"type": "Date",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "2023-12-27T11:13:00.074Z"
},
{
"type": "UniSelect",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
{
"type": "Tag",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
},
{
"type": "TimeDuration",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
}
]
}
Описание возвращаемой модели списка атрибутов
items
Список заполненных атрибутов задачи. Тип атрибута, идентификатор, название атрибута, описание атрибута, значение атрибута (формат данных описан в разделе Описание моделей значений атрибутов)
json[{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "string"
}]
Добавление значения атрибута задачи
Добавляет значения атрибута задачи.
POST /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attributes
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
Параметры тела запроса
type
(обязательный)
Тип атрибута. Значение из справочника:
- UniString;
- Number;
- Date
- UniSelect
- Tag
- User
- TimeDuration
type: "Number"
id
(обязательный)
Идентификатор атрибута
id: "5ce1753-ced5-4992-beb9-7408c1a56cf8"
value
(обязательный)
Значение атрибута. В соответствии с моделью значений атрибутов.
Описание моделей значений атрибутов
UniString
Строка {str:255}
"value": "Some string"
Number
Число
"value": -145.454443435345454
Date
Дата/время в формате ISO
"value": "2022-03-03T21:59:08Z"
UniSelect
Значение опции из списка
"value": "Medium"
Tag
Список опций тега
"value": ["tag 1", "tag 2"]
User
Идентификатор или логин пользователя
"value": {"username": "roman.cherepanov"}
"value": {"id": "b6ac719f-7de5-470a-997c-a83050d26b11"}
TimeDuration
Время в секундах (целое)
"value": 56000
Тело успешного ответа 200
{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "string"
}
Описание возвращаемой модели атрибута
type
Тип атрибута
id
Идентификатор атрибута
name
Название атрибута
description
Описание атрибута
value
Значение атрибута (формат данных описан в таблице "Описание моделей значений атрибутов")
Изменение значения атрибута задачи
Изменяет значение атрибута задачи.
PUT /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attributes/{attributeId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
attributeId
(обязательный)
Идентификатор атрибута
?attributeId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
Параметры тела запроса
type
(обязательный)
Тип атрибута. Значение из справочника:
- UniString
- Number;
- Date;
- UniSelect;
- Tag;
- User;
- TimeDuration;
type: "Number"
value
(обязательный)
Значение атрибута. В соответствии с моделью значений атрибутов.
Описание моделей значений атрибутов
UniString
Строка {str:255}
"value": "Some string"
Number
Число
"value": -145.454443435345454
Date
Дата/время в формате ISO
"value": "2022-03-03T21:59:08Z"
UniSelect
Значение опции из списка
"value": "Medium"
Tag
Список опций тега
"value": ["tag 1", "tag 2"]
User
Идентификатор или логин пользователя
"value": {"username": "roman.cherepanov"}
"value": {"id": "b6ac719f-7de5-470a-997c-a83050d26b11"}
TimeDuration
Время в секундах (целое)
"value": 56000
Тело успешного ответа 200
{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "string"
}
Описание возвращаемой модели атрибута
type
Тип атрибута
id
Идентификатор атрибута
name
Название атрибута
description
Описание атрибута
value
Значение атрибута (формат данных описан в таблице "Описание моделей значений атрибутов")
Удаление значения атрибута задачи
Удаляет значение атрибута задачи.
DELETE /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attributes/{attributeId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
attributeId
(обязательный)
Идентификатор атрибута
?attributeId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный статус запроса 204
.
Ended: Значения атрибутов задачи
Комментарии задачи ↵
Комментарии задачи
Получение всех комментариев задачи
Возвращает все комментарии по задаче.
GET /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/comments
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/workitems/{workitem}/comments
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems/{workitem}/comments
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"text": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"createdAt": "2023-12-27T14:03:40.114Z",
"updatedAt": "2024-01-29T12:16:04.727Z"
}
]
}
Описание возвращаемой модели списка комментариев
items
Список комментариев. Модель комментария описана в подразделе Добавление нового комментария к задаче.
Добавление нового комментария к задаче
Добавляет новый комментарий в задаче.
POST /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/comments
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
Параметры тела запроса
text
(обязательный)
Тело комментария
text: {string:MAX}
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"text": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"createdAt": "2023-12-27T14:06:04.915Z",
"updatedAt": "2024-01-29T12:16:04.727Z"
}
Описание возвращаемой модели комментария
id
Идентификатор комментария
text
Текст комментария. Формат разметки комментария описан в разделе Форматирование текста
author
Автор комментария. Идентификатор, отображаемое имя, логин и почта пользователя.
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
createdAt
Время создания комментария
updatedAt
Время изменения комментария
Изменение комментария
Изменяет текст комментария.
PUT /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/comments/{commentId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
commentId
(обязательный)
Идентификатор комментария
?commentId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
Параметры тела запроса
text
(обязательный)
Тело комментария
text: {string:MAX}
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"text": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"createdAt": "2023-12-27T14:06:04.915Z"
}
Возвращаемая модель описана в подразделе Добавление нового комментария к задаче.
Удаление комментария
Удаляет комментарий.
DELETE /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/comments/{commentId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
commentId
(обязательный)
Идентификатор комментария
?commentId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный статус запроса 204
.
Получение типа доступа к комментарию
Возвращает данные о типе доступа к комментарию (видимость комментария)
GET /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/comments/{commentId}/visibility
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
commentId
(обязательный)
Идентификатор комментария
?commentId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"visibilityType": "All",
"accessList": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
{
"type": "Group",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
]
}
Описание возвращаемой модели доступа к комментарию
visibilityType
Тип доступа к комментарию:
All
(доступен всем)Workspace
(доступен пользователям пространства)OnlySelected
(доступен только выбранным пользователям)ExceptSelected
(доступен всем, кроме выбранных пользователей)
accessList
Список доступа. Пользователи или группы пользователей Тип (пользователь или группа), идентификатор типа, данные о пользователе или группе
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Изменение типа доступа к комментарию
Изменяет тип доступа к комментарию (видимость комментария)
PUT /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/comments/{commentId}/visibility
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
commentId
(обязательный)
Идентификатор комментария
?commentId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
{
"visibilityType": "All",
"accessList": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": "User"
}
]
}
Параметры тела запроса
visibilityType
(обязательный)
Тип доступа к комментарию:
All
(доступен всем)Workspace
(доступен пользователям пространства)OnlySelected
(доступен только выбранным пользователям)ExceptSelected
(доступен всем, кроме выбранных пользователей)
accessList
(обязательный)
Список доступа. Пользователи или группы пользователей Идентификатор, тип (пользователь или группа:
User
,Group
)"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
"type": "User"
Тело успешного ответа 200
{
"visibilityType": "All",
"accessList": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
{
"type": "Group",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
]
}
Описание возвращаемой модели доступа к комментарию
visibilityType
Тип доступа к комментарию
All
(доступен всем)Workspace
(доступен пользователям пространства)OnlySelected
(доступен только выбранным пользователям)ExceptSelected
(доступен всем, кроме выбранных пользователей)
accessList
Список доступа. Пользователи или группы пользователей Тип (пользователь или группа), идентификатор типа, данные о пользователе или группе
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Комментарии задачи
Вложения задачи ↵
Вложения задачи
Получение всех вложений задачи
Возвращает список всех вложений задачи.
GET /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attachments
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"items": [
{
"attachmentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workspaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"fileId": "string",
"name": "string",
"type": "string",
"size": 0,
"createdAt": "2023-12-27T14:17:53.785Z"
}
]
}
Описание возвращаемой модели
items
Список вложений. Модель вложения описана подразделе Получение вложения задачи
Получение вложения задачи
Возвращает метаданные вложения задачи.
GET /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attachments/{attachmentId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
attachmentId
(обязательный)
Идентификатор вложения
?attachmentId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"attachmentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workspaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"fileId": "string",
"name": "string",
"type": "string",
"size": 0,
"createdAt": "2023-12-27T14:21:46.574Z"
}
Описание возвращаемой модели вложения
attachmentId
Идентификатор вложения
workspaceId
Идентификатор пространства, в которое добавлено вложение
createdBy
Автор вложения. Идентификатор, отображаемое имя, логин и почта пользователя.
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
fileId
Идентификатор файла вложения
name
Название файла вложения
type
MIME-тип файла вложения
size
Размер файла вложения в байтах
createdAt
Время создания вложения
Получение файла вложения задачи
Выгружает файл вложения.
GET /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attachments/{attachmentId}/download
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
attachmentId
(обязательный)
Идентификатор вложения
?attachmentId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Возвращает файл вложения в теле успешного ответа 200
.
Загрузка файла вложения задачи
Загружает файл на сервер с указанным идентификатором.
POST /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attachments/{attachmentId}/upload
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
attachmentId
(обязательный)
Идентификатор вложения, генерируется клиентом
?attachmentId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Параметры и описание тела запроса
file
(обязательный)
Содержимое файла
application/octet-stream
Успешный статус запроса 200
.
Создание вложения задачи
Добавляет вложение в задачу, файл которого предварительно загружено на сервер.
POST /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attachments/{attachmentId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
attachmentId
(обязательный)
Идентификатор вложения, генерируется клиентом
?attachmentId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
Параметры тела запроса
fileName
(обязательный)
Название файла
fileName: {string:255}
contentType
(обязательный)
Тип вложения (MIME-type)
contentType: "image/png"
contentLength
(обязательный)
Размер вложения в байтах
contentLength: 100500
Тело успешного ответа 200
:
{
"attachmentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workspaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"fileId": "string",
"name": "string",
"type": "string",
"size": 0,
"createdAt": "2023-12-27T14:49:27.680Z"
}
Модель ответа описана в таблице "Описание возвращаемой модели вложения" подраздела "Получение вложения задачи".
Удаление вложения
Удаляет вложение и файл вложения.
DELETE /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attachments/{attachmentId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
attachmentId
(обязательный)
Идентификатор вложения
?attachmentId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный статус запроса 204
.
Удаление всех вложений задачи
Удаляет все вложения задачи и их файлы.
DELETE /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/attachments
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный статус запроса 204
.
Ended: Вложения задачи
Управление доступом к задачам ↵
Управление доступом к задачам
Получение списка правил доступа
Возвращает список прав доступа к задаче
GET /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/sharing
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems/{workitem}/sharing
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems/{workitem}/sharing
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
[
{
"permissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workspaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workitemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accessLevel": "Read"
},
{
"type": "User",
"permissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workspaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workitemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accessLevel": "Read",
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
{
"type": "Group",
"permissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workspaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workitemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accessLevel": "Read",
"group": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
]
Описание возвращаемой модели разрешения на доступ к задаче
type
Тип доступа: пользователь или группа
"type": "Group"
/"type": "User"
permissionID
Идентификатор правила
workspaceId
Идентификатор пространства
workitemId
Идентификатор задачи
accessLevel
Уровень доступа
"accessLevel": "Read"
Возможные значения:
Read
— только просмотр;
Edit
— редактирование;
Comment
— комментирование.
Возвращаемые модели для пользователя и группы
user
Пользователь. Описание возвращаемой модели пользователя см. в разделе Пользователи
group
Группа. Описание возвращаемой модели группы см. в разделе Группы
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Добавление правила доступа
Добавляет новое правило доступа
POST /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/sharing
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems/{workitem}/sharing
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems/{workitem}/sharing
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
Параметры тела запроса
type
Тип доступа: пользователь или группа
"type": "Group"
/"type": "User"
accessLevel
Уровень доступа
"accessLevel": "Read"
Возможные значения:
Read
— только просмотр;
Edit
— редактирование;
Comment
— комментирование.
userID
Идентификатор пользователя
"userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
groupID
Идентификатор группы
"groupId": "5fa85f64-5717-4512-b9fc-2c933f66afa5"
Тело успешного ответа 200
{
"type": "User",
"permissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workspaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workitemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accessLevel": "Read",
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Описание возвращаемой модели разрешения на доступ к задаче
type
Тип доступа: пользователь или группа
"type": "Group"
/"type": "User"
permissionID
Идентификатор правила
workspaceId
Идентификатор пространства
workitemId
Идентификатор задачи
accessLevel
Уровень доступа
"accessLevel": "Read"
Возможные значения:
Read
— только просмотр;
Edit
— редактирование;
Comment
— комментирование.
Возвращаемые модели для пользователя и группы
user
Пользователь. Описание возвращаемой модели пользователя см. в разделе Пользователи
group
Группа. Описание возвращаемой модели группы см. в разделе Группы
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Изменение уровня доступа в правиле
Изменяет тип доступа в правиле
PATCH /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/sharing/{permissionId}
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems/{workitem}/sharing/{permissionId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems/{workitem}/sharing/{permissionId}
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
permissionId
(обязательный)
Идентификатор правила
Тело запроса
```json
{
"accessLevel": "Read"
}
```
Параметры тела запроса
accessLevel
Уровень доступа
"accessLevel": "Read"
Возможные значения:
Read
— только просмотр;
Edit
— редактирование;
Comment
— комментирование.
Тело успешного ответа 200
{
"type": "User",
"permissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workspaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"workitemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accessLevel": "Read",
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Описание возвращаемой модели разрешения на доступ к задаче
type
Тип доступа: пользователь или группа
"type": "Group"
/"type": "User"
permissionID
Идентификатор правила
workspaceId
Идентификатор пространства
workitemId
Идентификатор задачи
accessLevel
Уровень доступа
"accessLevel": "Read"
Возможные значения:
Read
— только просмотр;
Edit
— редактирование;
Comment
— комментирование.
Возвращаемые модели для пользователя и группы
user
Пользователь. Описание возвращаемой модели пользователя см. в разделе Пользователи
group
Группа. Описание возвращаемой модели группы см. в разделе Группы
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Удаление правила доступа
Удаляет правило доступа
DELETE /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/sharing/{permissionId}
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems/{workitem}/sharing/{permissionId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems/{workitem}/sharing/{permissionId}
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
permissionId
(обязательный)
Идентификатор правила
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Управление доступом к задачам
Пользовательские атрибуты ↵
Пользовательские атрибуты
Получение пользовательских атрибутов
Возвращает все пользовательские атрибуты пространства с фильтрацией и пагинацией.
GET /cwm/public/api/v1/workspaces/{workspace}/attributes
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
name
Название типа для фильтрации (вхождение подстроки)
?name=Деф
type
Тип атрибута для фильтрации. Значение из справочника:
- UniString
- Number
- Date
- UniSelect
- Tag
- User
- TimeDuration
fromToken
Токен запрашиваемой страницы
?fromToken=f5ce1753
maxItemsCount
Максимальное кол-во задач на странице (по умолчанию: 50)
?maxItemsCount=200
Возможно комбинирование параметров фильтрации.
Тело успешного ответа 200
{
"fromToken": "string",
"maxItemsCount": 0,
"nextToken": "string",
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"type": "UniString",
"options": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
],
"workitemTypes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
]
}
Описание возвращаемой модели
fromToken
>
Токен текущей страницы результатов
maxItemsCount
>
Кол-во запрошенных элементов на странице результатов
nextToken
Токен следующей страницы результатов
items
Список атрибутов. Модель атрибута описана в подразделе Получение пользовательского атрибута.
Получение пользовательского атрибута
Возвращает конкретный пользовательский атрибут.
GET /cwm/public/api/v1/workspaces/{workspace}/attributes/{attributeId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
attributeId
(обязательный)
Идентификатор атрибута
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"type": "UniString",
"options": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
],
"workitemTypes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
Описание возвращаемой модели атрибута
id
Идентификатор атрибута
name
Название атрибута
description
Описание атрибута
type
Тип атрибута
options
Опции атрибута для типов UniSelect и Tag
workitemTypes
Типы задач, в которые добавлен атрибут. Идентификатор и название типа.
Создание пользовательского атрибута
Создает новый пользовательский атрибут
POST /cwm/public/api/v1/workspaces/{workspace}/attributes
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело запроса
{
"name": "string",
"description": "string",
"type": "UniString",
"options": [
{
"name": "string"
}
]
}
Параметры тела запроса
name (обязательный)
Название пользовательского атрибута
name: Название атрибута
description
Описание пользовательского атрибута
description: "Текстовое описание атрибута"
type (обязательный)
Тип атрибута
type: "UniString"
Допустимые значения типа атрибута:
- UniString
- Number
- Date
- UniSelect
- Tag
- User
- TimeDuration
options
Опции атрибута для типов UniSelect и Tag
options: [ { "name": "Опция 1" } ]
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"type": "UniString",
"options": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
],
"workitemTypes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
Описание модели пользовательского атрибута приведено в разделе Описание возвращаемой модели атрибута.
Изменение пользовательского атрибута
Изменяет параметр пользовательского атрибута
PATCH /cwm/public/api/v1/workspaces/{workspace}/attributes/{attributeId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
attributeId
(обязательный)
Идентификатор атрибута
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
{
"name": "string",
"description": "string",
"options": [
{
"id": "f5ce1753-ced5-4992-beb9-7408c1a56cf8",
"name": "string"
}
]
}
Параметры тела запроса
name
Название пользовательского атрибута
name: Название атрибута
description
Описание пользовательского атрибута
description: "Текстовое описание атрибута"
options
Опции атрибута для типов UniSelect и Tag
options: [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "Измененная опция" } ]
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"type": "UniString",
"options": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
],
"workitemTypes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
Описание модели пользовательского атрибута приведено в разделе Описание возвращаемой модели атрибута.
Удаление пользовательского атрибута
Удаляет пользовательский атрибут
DELETE /cwm/public/api/v1/workspaces/{workspace}/attributes/{attributeId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
attributeId
(обязательный)
Идентификатор атрибута
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный статус запроса 204
.
Ended: Пользовательские атрибуты
Связи ↵
Связи
Получение связей задачи
Возвращает список связей задачи в пространстве
GET /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/links
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/workitems/{workitem}/links
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems/{workitem}/links
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
Нажмите, чтобы увидеть пример
[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"linkedWorkitem": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"type": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"status": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"startDate": "2024-10-27T15:20:24.435Z",
"endDate": "2024-10-27T15:20:24.435Z",
"createdDate": "2024-10-27T15:20:24.435Z",
"dueDate": "2024-10-27T15:20:24.435Z",
"assignee": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"sprint": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"folder": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"originalEstimate": 0,
"timeSpent": 0,
"remainingEstimate": 0,
"storyPoints": 0,
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"changeDate": "2024-10-27T15:20:24.436Z",
"parent": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nodeType": "Folder"
},
"attributes": [
{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "string"
},
{
"type": "Number",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
},
{
"type": "Date",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "2024-10-27T15:20:24.436Z"
},
{
"type": "UniSelect",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
{
"type": "Tag",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
{
"type": "TimeDuration",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
}
],
"portfolios": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"elements": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
],
"workspace": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
}
}
]
Описание возвращаемой модели
id
Идентификатор связи
type
Тип связи. Название
"type": "Relates"
Описание возвращаемой модели типа связи см. в подразделе Получение типов связей
linkedWorkitem
Связанная задача. Ключ или идентификатор задачи. Описание возвращаемой модели задачи см. в подразделе Получение задачи
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Получение типов связей
Возвращает типы связей задач в пространстве
GET /cwm/public/api/v1/workspaces/{workspace}/link-types
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/link-types
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/link-types
Тело успешного ответа 200
items
Список типов связей
Описание возвращаемой модели типа связи
id
Идентификатор типа связи
name
Название типа связи
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
!!! failure "500 (Server Error) Внутренняя ошибка сервиса
Добавление связи в задачу
Добавляет новую связь в задачу
POST /cwm/public/api/v1/workspaces/{workspace}/workitems/{workitem}/links
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/workitems/{workitem}/links
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems/{workitem}/links
workitem
(обязательный)
Ключ или идентификатор задачи
?workitem=TS-13
?workitem=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
```json
{
"type": "string",
"linkedWorkitem": "string"
}
```
Параметры тела запроса
type
Тип связи. Описание возвращаемой модели типа связи см. в подразделе Получение типов связей
linkedWorkitem
Связываемая задача. Описание возвращаемой модели задачи см. в подразделе Получение задачи
Тело успешного ответа 200
Нажмите, чтобы увидеть пример
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"linkedWorkitem": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"type": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"status": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"startDate": "2024-10-27T20:55:20.557Z",
"endDate": "2024-10-27T20:55:20.557Z",
"createdDate": "2024-10-27T20:55:20.557Z",
"dueDate": "2024-10-27T20:55:20.557Z",
"assignee": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"sprint": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"folder": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"originalEstimate": 0,
"timeSpent": 0,
"remainingEstimate": 0,
"storyPoints": 0,
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"changeDate": "2024-10-27T20:55:20.557Z",
"parent": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nodeType": "Folder"
},
"attributes": [
{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "string"
},
{
"type": "Number",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
},
{
"type": "Date",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "2024-10-27T20:55:20.557Z"
},
{
"type": "UniSelect",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
{
"type": "Tag",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
{
"type": "TimeDuration",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
}
],
"portfolios": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"elements": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
],
"workspace": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
}
}
Описание возвращаемой модели
id
Идентификатор связи
type
Тип связи. Название типа
"type": "Relates"
Описание возвращаемой модели типа связи см. в подразделе Получение типов связей
linkedWorkitem
Связанная задача, ключ или идентификатор задачи. Описание возвращаемой модели задачи см. в подразделе Получение задачи
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Удаление связи из задачи
Удаляет связь из задачи
DELETE /cwm/public/api/v1/workspaces/{workspace}/links/{linkId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/workitems/{workitem}/links
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems/{workitem}/links
linkId
(обязательный)
Идентификатор связи
?linkId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный статус запроса 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
!!! failure "500 (Server Error) Внутренняя ошибка сервиса
Ended: Связи
Папки пространства ↵
Папки пространства
Получение папок пространства
Возвращает все папки пространства с фильтрацией и пагинацией.
GET /cwm/public/api/v1/workspaces/{workspace}/folders
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
name
Название папки для фильтрации (вхождение подстроки)
?name=Папка 1
parentId
Идентификатор родительской папки
?parentId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
fromToken
Токен запрашиваемой страницы
?fromToken=f5ce1753
maxItemsCount
Максимальное кол-во задач на странице (по умолчанию: 50)
?maxItemsCount=200
Возможно комбинирование параметров фильтрации.
Тело успешного ответа 200
{
"fromToken": "string",
"maxItemsCount": 0,
"nextToken": "string",
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
]
}
Описание возвращаемой модели
fromToken
>
Токен текущей страницы результатов
maxItemsCount
>
Кол-во запрошенных элементов на странице результатов
nextToken
Токен следующей страницы результатов
items
Список папок. Модель папки описана в Описание возвращаемой модели папки
Получение папки
Возвращает папку.
GET /cwm/public/api/v1/workspaces/{workspace}/folders/{folderId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
folderId
(обязательный)
Идентификатор папки
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"fromToken": "string",
"maxItemsCount": 0,
"nextToken": "string",
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
]
}
Описание возвращаемой модели папки
id
Идентификатор папки
name
Название папки
description
Описание папки
parentId
Идентификатор родительской папки
Создание новой папки
Добавляет новую папку в пространстве.
POST /cwm/public/api/v1/workspaces/{workspace}/folders
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/folders
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/folders
Тело запроса
Параметры тела запроса:
name
(обязательный)
Название папки
"name": "Новая папка"
description
Описание папки
"description": "string"
parentId
(обязательный)
Идентификатор родительской папки
"parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Описание возвращаемой модели папки приведено в Описание возвращаемой модели комментария
Изменение папки
Изменяет папку в пространстве.
PATCH /cwm/public/api/v1/workspaces/{workspace}/folders/{folderId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/folders
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/folders
folderId
(обязательный)
Идентификатор папки
/cwm/public/api/v1/workspaces/KEY/folders/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
Параметры тела запроса:
name
(обязательный)
Название папки
"name": "Новая папка"
description
Описание папки
"description": "string"
parentId
(обязательный)
Идентификатор родительской папки
"parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Описание возвращаемой модели папки приведено в Описание возвращаемой модели комментария
Удаление папки
Удаляет папку в пространстве.
DELETE /cwm/public/api/v1/workspaces/{workspace}/folders/{folderId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/folders
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/folders
folderId
(обязательный)
Идентификатор папки
/cwm/public/api/v1/workspaces/KEY/folders/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный ответ 204
Ended: Папки пространства
Портфели ↵
Портфели
Получение всех портфелей
Возвращает список всех портфелей в пространстве.
GET /cwm/public/api/v1/workspaces/{workspace}/portfolios
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело успешного ответа 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"folder": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"elements": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
],
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
]
}
Описание возвращаемой модели
items
Список портфелей. Модель портфеля описана в подразделе Получение портфеля
Получение портфеля
Возвращает конкретный портфель.
GET /cwm/public/api/v1/workspaces/{workspace}/portfolios/{portfolioId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
portfolioId
Идентификатор портфеля
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"folder": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"elements": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
],
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
Описание возвращаемой модели портфеля
id
Идентификатор портфеля
name
Название портфеля
description
Описание портфеля
folder
Папка, в которую добавлен портфель. Идентификатор и название папки.
elements
Список элементов портфеля. Название и идентификатор элемента.
workflow
Процесс, определяющий статусную модель портфеля. Название и идентификатор процесса.
Получение списка элементов портфеля
Возвращает пагинированный список элементов портфеля по указанным параметрам.
GET /cwm/public/api/v1/workspaces/{workspace}/portfolio-elements
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
name
Имя элемента для поиска (вхождение подстроки)
?name=Версия 1
folderId
Идентификатор содержащей папки
?folderId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
portfolioId
Идентификатор портфеля
?portfolioId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
status
Название или идентификатор статуса элемента
?status=Под риском
?status=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Возможно комбинирование параметров фильтрации.
Тело успешного ответа 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"startDate": "2023-12-29T10:52:30.494Z",
"endDate": "2023-12-29T10:52:30.494Z",
"status": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"responsibles": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
],
"portfolio": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
]
}
Описание возвращаемой модели
items
Список элементов. Модель элемента портфеля описана в подразделе Получение элемента портфеля
Получение элемента портфеля
Возвращает конкретный элемент портфеля.
GET /cwm/public/api/v1/workspaces/{workspace}/portfolio-elements/{portfolioElementId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
portfolioElementId
Идентификатор элемента портфеля
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Возможно комбинирование параметров фильтрации.
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"startDate": "2023-12-29T11:03:51.986Z",
"endDate": "2023-12-29T11:03:51.986Z",
"status": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"responsibles": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
],
"portfolio": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
Описание возвращаемой модели элемента портфеля
id
Идентификатор элемента
name
Название элемента
description
Описание элемента
startDate
Плановая дата начала
endDate
Плановая дата завершения
status
Статус элемента. Идентификатор статуса, название статуса, категория статуса.
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
responsibles
Список ответственных по элементу. Идентификаторы, отображаемое имя, логин и почта пользователей.
[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
]
portfolio
Портфель, в который добавлен элемент. Идентификатор и название портфеля.
Создание портфеля
Создает портфель
POST /cwm/public/api/v1/workspaces/{workspace}/portfolios
Параметры запроса
`workspace (обязательный)
Ключ пространства
workspaces/TS/porfolios
Тело запроса
Параметры тела запроса
name
(обязательный)
Название портфеля
name: "Releases"
description
Описание портфеля
description: "Text"
Тело успешного ответа 200
{
"id": id,
"name": name,
"description": description,
"folder": {
"id": "",
"name": name,
"description": None,
"parent": None,
"path": ""
},
"elements": [{
"id": "",
"name": ""
}],
"workflow": {
"id": "",
"name": "Default"
}
}
Ошибки
401 (Unauthorized)
Неавторизованный запрос
404 (Not Found)
Несуществующее пространство или папка
400 (Bad Request)
Неправильный параметр тела запроса, неправильное значение параметра в теле
400 (Bad Request)
Отсутствие обязательного параметра тела
400 (Bad Request)
Дублирование портфеля - есть портфель с таким ключом в папке
Изменение портфеля
Изменяет портфель
/cwm/public/api/v1/workspaces/{workspace}/portfolios/{portfolioId}
Параметры запроса
workspace
(обязательный)
Ключ пространства
workspaces/TS/porfolios
portfolioId
(обязательный)
Идентификатор портфеля (guid)
porfolios/c310f5b2-2ecd-4e9d-bc0b-170fe6c1e5e7
Тело запроса
Параметры тела запроса
name
Название портфеля
name: "Releases"
description
Описание портфеля
description: "Text"
Тело успешного ответа 200
{
"id": id,
"name": name,
"description": description,
"folder": {
"id": "",
"name": name,
"description": None,
"parent": None,
"path": ""
},
"elements": [{
"id": "",
"name": ""
}],
"workflow": {
"id": "",
"name": "Default"
}
}
Ошибки
401 (Unauthorized)
Неавторизованный запрос
404 (Not Found)
Несуществующее пространство или портфель
400 (Bad Request)
Неправильный параметр тела запроса, неправильное значение параметра в теле
400 (Bad Request)
Дублирование портфеля - есть портфель с таким ключом в папке
Удаление портфеля
Удаляет портфель
DELETE /cwm/public/api/v1/workspaces/{workspace}/portfolios/{portfolioId}
Параметры запроса
workspace
(обязательный)
Ключ пространства
workspaces/TS/porfolios
portfolioId (обязательный)
Идентификатор портфеля (guid)
porfolios/c310f5b2-2ecd-4e9d-bc0b-170fe6c1e5e7
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Не авторизованный запрос
404 (Not Found)
Несуществующее пространство или очередь
Создание элемента портфеля
Создает элемент портфеля
POST /cwm/public/api/v1/workspaces/{workspace}/portfolio-elements
Параметры запроса
workspace
(обязательный)
Ключ пространства
workspaces/TS/portfolio-elements
portfolio (обязательный)
Идентификатор портфеля (guid)
?portfolio=c310f5b2-2ecd-4e9d-bc0b-170fe6c1e5e7
Тело запроса
{
"name": "",
"description": "",
"startDate": "2022-03-03T21:59:08Z",
"endDate": "2022-03-03T21:59:08Z",
"responsibles": ["roman.cherepanov"],
"status": ""
}
Параметры тела запроса
name (обязательный)
Название элемента портфеля
name: "Release 1"
description
Описание элемента портфеля
description: "Text"
startDate
Дата начала элемента портфеля
startDate: "2022-03-03T21:59:08Z"
endDate
Дата завершения элемента портфеля
endDate: "2022-03-03T21:59:08Z"
responsibles
Список ответственных (логин пользователя)
responsibles: ["roman.cherepanov"]
status
Статус элемента портфеля (название статуса)
status: "At Risk"
Тело успешного ответа 200
{
"id": "",
"name": "",
"description": "",
"startDate": "2022-03-03T21:59:08Z",
"endDate": "2022-03-03T21:59:08Z",
"status": {
"id": "",
"name": ""
"category": {
"id": "",
"name": ""
}
},
"responsibles": [{
"id": "c310f5b2-2ecd-4e9d-bc0b-170fe6c1e5e7",
"displayName": "System Administrator",
"username": "admin",
"email": ""
}],
"portfolio": {
"id": id,
"name": name,
"description": description,
"folder": {
"id": "",
"name": name,
"description": None,
"parent": None,
"path": ""
}
}
}
Ошибки
401 (Unauthorized)
Неавторизованный запрос
404 (Not Found)
Несуществующее пространство или элемент портфеля
400 (Bad Request)
Неправильный параметр тела запроса, неправильное значение параметра в теле, несуществующий пользователь или статус
400 (Bad Request)
Отсутствие обязательного параметра тела
400 (Bad Request)
Дублирование элемента портфеля - есть элемент с таким ключом в портфеле
Изменение элемента портфеля
Изменяет элемент портфеля
PATCH /cwm/public/api/v1/workspaces/{workspace}/portfolio-elements/{portfolioElementId}
Параметры запроса
workspace
(обязательный)
Ключ пространства
workspaces/TS/portfolio_elements
portfolioElementId
(обязательный)
Идентификатор элемента портфеля (guid)
porfolio_elements/c310f5b2-2ecd-4e9d-bc0b-170fe6c1e5e7
Тело запроса
{
"name": "",
"description": "",
"startDate": "2022-03-03T21:59:08Z",
"endDate": "2022-03-03T21:59:08Z",
"responsibles": ["roman.cherepanov"],
"status": ""
}
Параметры тела запроса
name
Название элемента портфеля
name: "Release 1"
description
Описание элемента портфеля
description: "Text"
startDate
Дата начала элемента портфеля
startDate: "2022-03-03T21:59:08Z"
endDate
Дата завершения элемента портфеля
endDate: "2022-03-03T21:59:08Z"
responsibles
Список ответственных (логин пользователя)
responsibles: ["roman.cherepanov"]
status
Статус элемента портфеля (название статуса)
status: "At Risk"
Тело успешного ответа 200
{
"id": "",
"name": "",
"description": "",
"startDate": "2022-03-03T21:59:08Z",
"endDate": "2022-03-03T21:59:08Z",
"status": {
"id": "",
"name": ""
"category": {
"id": "",
"name": ""
}
},
"responsibles": [{
"id": "c310f5b2-2ecd-4e9d-bc0b-170fe6c1e5e7",
"displayName": "System Administrator",
"username": "admin",
"email": ""
}],
"portfolio": {
"id": id,
"name": name,
"description": description,
"folder": {
"id": "",
"name": name,
"description": None,
"parent": None,
"path": ""
}
}
}
Ошибки
401 (Unauthorized)
Неавторизованный запрос
404 (Not Found)
Несуществующее пространство или элемент портфеля
400 (Bad Request)
Неправильный параметр тела запроса, неправильное значение параметра в теле, несуществующий пользователь или статус
400 (Bad Request)
Отсутствие обязательного параметра тела
400 (Bad Request)
Дублирование элемента портфеля - есть элемент с таким ключом в портфеле
Удаление элемента портфеля
Удаляет элемент портфеля
DELETE /cwm/public/api/v1/workspaces/{workspace}/portfolio-elements/{portfolioElementId}
Параметры запроса
workspace (обязательный)
Ключ пространства
workspaces/TS/porfolio-elements
portfolioElementId (обязательный)
Идентификатор элемента портфеля (guid)
porfolio_elements/c310f5b2-2ecd-4e9d-bc0b-170fe6c1e5e7
Успешный ответ 204
Ошибки
401 (Unauthorized)
Неавторизованный запрос
404 (Not Found)
Несуществующее пространство или портфолио
400 (Bad Request)
Неправильный параметр тела запроса
Ended: Портфели
Спринты и Agile ↵
Спринты
Получение списка расширений Agile
Возвращает список расширений Agile. Возможна фильтрация по папке.
GET /cwm/public/api/v1/workspaces/{workspace}/agile?folderId={}/list
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/agile/list
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/agile/list
folderId
Идентификатор папки для поиска по папке
?folderId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"folderId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"estimatesType": "EstimatesInTime"
}
]
Описание возвращаемой модели Agile
id
Идентификатор расширения Agile
name
Название расширения Agile
folderId
Идентификатор папки, в которой создано расширение
estimatesType
Тип оценки задач в расширении
EstimatesInTime
- оценка в часахEstimatesInStoryPoints
- оценка в сторипоинтах
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Получение конкретного расширения Agile
Возвращает конкретное расширение Agile
GET /cwm/public/api/v1/workspaces/{workspace}/agile/{agileId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/agile/{agileId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/agile/{agileId}
agileId
Идентификатор расширения Agile
?agileId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"folderId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"estimatesType": "EstimatesInTime"
}
Описание возвращаемой модели Agile
id
Идентификатор расширения Agile
name
Название расширения Agile
folderId
Идентификатор папки, в которой создано расширение
estimatesType
Тип оценки задач в расширении
EstimatesInTime
- оценка в часахEstimatesInStoryPoints
- оценка в сторипоинтах
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Создание расширения Agile
Создает расширение Agile
GET /cwm/public/api/v1/workspaces/{workspace}/agile
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/agile
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/agile
Тело запроса
Параметры тела запроса
folderId
Идентификатор папки, в которой создается расширение
estimatesType
Тип оценки задач в расширении
EstimatesInTime
- оценка в часахEstimatesInStoryPoints
- оценка в сторипоинтах
Описание возвращаемой модели Agile
id
Идентификатор расширения Agile
name
Название расширения Agile
folderId
Идентификатор папки, в которой создано расширение
estimatesType
Тип оценки задач в расширении
EstimatesInTime
- оценка в часахEstimatesInStoryPoints
- оценка в сторипоинтах
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Удаление расширения Agile
Удаляет расширение Agile
DELETE /cwm/public/api/v1/workspaces/{workspace}/agile
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/agile
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/agile
agileId
Идентификатор расширения Agile
?agileId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Получение списка спринтов с фильтрацией
Возвращает список спринтов в пространстве, соответствующий критериям фильтрации.
GET /cwm/public/api/v1/workspaces/{workspace}/sprints
Параметры запроса
workspace (обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/sprints
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/sprints
folderId
Идентификатор папки для поиска по папке
?folderId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
name
Название спринта для поиска (частичное вхождение подстроки)
?name=Sprint 201
Тело успешного ответа 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"startDate": "2024-10-29T13:42:03.926Z",
"endDate": "2024-10-29T13:42:03.926Z",
"state": "New",
"workdays": 0,
"isBacklog": true,
"team": [
{
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"hoursPerDay": 0,
"daysOff": 0
}
]
}
]
}
Описание возвращаемой модели
items
Список спринтов. Описание возвращаемой модели спринта см. в подразделе Получение спринта.
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Получение спринта
Возвращает конкретный спринт.
GET /tasks/rest/api/v1/workspaces/{workspace}/sprints/{sprintId}
Параметры запроса
workspace (обязательный)
Ключ или идентификатор пространства
workspaces/TS/sprints/{sprintId}
workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/sprints/{sprintId}
sprintId (обязательный)
Идентификатор спринта
sprints/c310f5b2-2ecd-4e9d-bc0b-170fe6c1e5e7
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"startDate": "2024-10-29T16:57:02.999Z",
"endDate": "2024-10-29T16:57:02.999Z",
"state": "New",
"workdays": 0,
"isBacklog": true,
"team": [
{
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"hoursPerDay": 0,
"daysOff": 0
}
]
}
Описание возвращаемой модели спринта
id
Идентификатор спринта
name
Название спринта
?name=Спринт 1
description
Описание спринта
startDate
Дата начала спринта
endDate
Дата завершения спринта
state
Статус спринта (Новый, Активный, Завершенный)
workdays
Кол-во рабочих дней в спринте
isBacklog
Флаг бэклога. True
- элемент является бэклогом, False
- элемент является спринтом.
team
Команда спринта. Список участников с указанием количества рабочих часов в дне и количества дней отпуска.
[
{
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"hoursPerDay": 0,
"daysOff": 0
}
]
Описание модели участника команды
user
Пользователь (см. описание модели пользователя)
hoursPerDay
Количество рабочих часов в дне
daysOff
Количество дней отпуска (выходных) у пользователя в спринте
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Создание спринта
Создает спринт
POST /cwm/public/api/v1/workspaces/{workspace}/sprints
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
workspaces/KEY/sprints
workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/sprints/{sprintId}
Тело запроса
{
"agileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"startDate": "2024-10-29T19:06:13.606Z",
"endDate": "2024-10-29T19:06:13.606Z",
"workdays": 0,
"copyViewsFromSprint": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"estimatedStoryPoints": 0,
"team": [
{
"userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"daysOff": 0,
"hoursPerDay": 0
}
]
}
Параметры тела запроса
agileId
Идентификатор расширения Agile, в котором создается спринт
name
Название спринта
name="Sprint 1"
description
Описание спринта
startDate
Дата начала спринта
endDate
Дата завершения спринта
workdays
Кол-во рабочих дней в спринте
copyViewsFromSprint
Перенести представления из другого спринта. Идентификатор спринта, из которого нужно перенести представления
estimatedStoryPoints
Оценка в сторипоинтах
team
Команда спринта. Список участников с указанием количества рабочих часов в день и количества дней отпуска.
Тело запроса для участника команды спринта
userId
Идентификатор пользователя
hoursPerDay
Количество рабочих часов в дне
daysOff
Количество дней отпуска (выходных) у пользователя в спринте
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"startDate": "2024-10-29T19:06:13.641Z",
"endDate": "2024-10-29T19:06:13.641Z",
"state": "New",
"workdays": 0,
"isBacklog": true,
"team": [
{
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"hoursPerDay": 0,
"daysOff": 0
}
]
}
Описание возвращаемой модели спринта
Описана в подразделе Получение спринта
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Изменение спринта
Изменяет спринт
PATCH /cwm/public/api/v1/workspaces/{workspace}/sprints/{sprintId}
Параметры запроса
workspace (обязательный)
Ключ или идентификатор пространства
workspaces/TS/sprints/{sprintId}
workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/sprints/{sprintId}
sprintId (обязательный)
Идентификатор спринта
sprints/c310f5b2-2ecd-4e9d-bc0b-170fe6c1e5e7
Тело запроса
{
"name": "string",
"description": "string",
"startDate": "2024-10-29T20:16:05.878Z",
"endDate": "2024-10-29T20:16:05.878Z",
"workdays": 0,
"estimatedStoryPoints": 0,
"team": [
{
"userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"daysOff": 0,
"hoursPerDay": 0
}
]
}
Параметры тела запроса
name
Название спринта
name="Sprint 1"
description
Описание спринта
startDate
Дата начала спринта
endDate
Дата завершения спринта
workdays
Кол-во рабочих дней в спринте
estimatedStoryPoints
Оценка в сторипоинтах
team
Команда спринта. Список участников с указанием количества рабочих часов в день и количества дней отпуска.
Тело запроса для участника команды спринта
userId
Идентификатор пользователя
hoursPerDay
Количество рабочих часов в дне
daysOff
Количество дней отпуска (выходных) у пользователя в спринте
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"startDate": "2024-10-29T20:16:05.879Z",
"endDate": "2024-10-29T20:16:05.879Z",
"state": "New",
"workdays": 0,
"isBacklog": true,
"team": [
{
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"hoursPerDay": 0,
"daysOff": 0
}
]
}
Описание возвращаемой модели спринта
Описана в подразделе Получение спринта
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Удаление спринта
Удаляет спринт
DELETE /cwm/public/api/v1/workspaces/{workspace}/sprints/{sprintId}
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
workspaces/TS/sprints/{sprintId}
workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/sprints/{sprintId}
sprintId
(обязательный)
Идентификатор спринта
sprints/c310f5b2-2ecd-4e9d-bc0b-170fe6c1e5e7
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Спринты и Agile
Статусы ↵
Статусы
Получение списка статусов в пространстве
Возвращает список всех статусов пространства
GET /cwm/public/api/v1/workspaces/{workspace}/statuses
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело успешного ответа 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
]
}
Описание возвращаемой модели
items
Список статусов. Описание модели статуса в подразделе Получение статуса
Получение статуса
Возвращает конкретный статус.
GET /cwm/public/api/v1/workspaces/{workspace}/statuses/{status}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
status
(обязательный)
Идентификатор или название статуса
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Done
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
Описание возвращаемой модели статуса
id
Идентификатор спринта
name
Название статуса
category
Категория статуса. Идентификатор и название категории.
Получение категорий статусов
Возвращает справочник категорий статусов.
GET /cwm/public/api/v1/status-categories
Тело успешного ответа 200
Описание возвращаемой модели
items
Список категорий. Идентификаторы и названия категорий статусов.
Создание нового статуса
Создает новый статус
POST /cwm/public/api/v1/workspaces/{workspace}/statuses
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело запроса
Параметры тела запроса
name
(обязательный)
Название статуса
name: Новый статус
category
(обязательный)
Категория статуса (название или идентификатор)
category: TO DO
category: f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
Описание модели статуса в таблице Описание возвращаемой модели статуса.
Ended: Статусы
Типы задач ↵
Типы задач
Получение типов задач
Возвращает список всех типов задач в пространстве.
GET /cwm/public/api/v1/workspaces/{workspace}/types
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело успешного ответа 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"color": "Tomato" ,
"icon": "string"
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"attributes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"type": "UniString",
"options": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
],
"workitemTypes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
],
"progressType": "ByStatus",
"estimatesInTime": true,
"estimatesInStoryPoints": true,
"showTimeTracking": true
}
]
}
Описание возвращаемой модели
items
Список типов.
Описание модели типа приведено в таблице Описание возвращаемой модели типа задачи.
Получение типа
Возвращает конкретный тип задачи.
GET /cwm/public/api/v1/workspaces/{workspace}/types/{type}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
type
(обязательный)
Идентификатор или название типа
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Задача
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"color": "Tomato",
"icon": "string"
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"attributes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"type": "UniString",
"options": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
],
"workitemTypes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
],
"progressType": "ByStatus",
"estimatesInTime": true,
"estimatesInStoryPoints": true,
"showTimeTracking": true
}
Описание возвращаемой модели типа задачи
id
Идентификатор типа
name
Название типа
icon
Наименование иконки типа.
Возможные значения: BugSolid, BookmarkSolid, ZapSolid, Layers3Solid, CrownSolid, DocSolid, FlameSolid, EyeSolid, LightSolid, StarSolid, CheckmarkCircleSolid, FlagSolid, ChartPieSolid, UmbrellaSolid, WaveformEcgSolid, KeySolid, HeartSolid, CheckmarkSquareSolid, AlertTriangleSolid, TraySolid, BoxSolid, ChevronLeftChevronRightSolid, MessageBubble2Solid, GearSolid, GiftboxSolid, PenToolSolid, ShieldSolid, LockSolid, Square4GridSolid, BookOpenSolid, QuestionCircleSolid, MinusCircleSolid, PlusCircleSolid, InfoCircleSolid, ArrowCircleUpSolid, ArrowCircleDownSolid, AlertCircleSolid, CompassSolid, EmojiFrownSolid, EmojiSmileSolid, ArrowShapeTurnRightSolid, ArrowShapeTurnLeftSolid, ArrowDownSolid, ArrowUpSolid, CheckmarkSolid, HouseSolid, ClockSolid, ArchiveboxSolid, HeadphonesSolid, PaperPlaneSolid, ShapeRhombusSolid, Poop, ShapeTriangleSolid, ShapeCircleSolid, ShapeSquareSolid, TrashSolid, BrushPaintSolid, AsteriskSolid, RocketSolid, LeafSolid, TestIt, Pizza, Yoonion.
color
Цвет иконки типа.
Возможные значения: Sky, Mint, Yellow, Amber, Slate, Tomato, Red, Crimson, Pink, Plum, Purple, Violet, Indigo, Blue, Cyan, Teal, Green, Grass, Orange, Brown, Gold, Bronze, Gray.
workflow
Рабочий процесс по умолчанию для типа. Идентификатор и название процесса.
attributes
Список атрибутов. Модель атрибута приведена в таблице Описание возвращаемой модели атрибута.
progressType
Способ расчета прогресса задач для данного типа.
Возможные значения: не задано, ByStatus, ByChildren, ByMetric.
estimatesInTime
Включение оценки задач данного типа в единицах времени.
estimatesInStoryPoints
Включение оценки задач данного типа в относительных единицах.
showTimeTracking
Включение учета времени в задачах данного типа.
Создание нового типа задачи
Создает новый тип задачи
POST /cwm/public/api/v1/workspaces/{workspace}/types
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело запроса
{
"name": "string",
"icon": "BugSolid",
"color": "Sky",
"workflow": "string",
"attributeIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"progressType": "ByStatus",
"estimatesInTime": false,
"estimatesInStoryPoints": false,
"showTimeTracking": false
}
Параметры тела запроса
name (обязательный)
Название типа
name: Новый тип
icon
Название иконки типа. По умолчанию CheckmarkSquareSolid.
icon: BugSolid
Возможные значения: BugSolid, BookmarkSolid, ZapSolid, Layers3Solid, CrownSolid, DocSolid, FlameSolid, EyeSolid, LightSolid, StarSolid, CheckmarkCircleSolid, FlagSolid, ChartPieSolid, UmbrellaSolid, WaveformEcgSolid, KeySolid, HeartSolid, CheckmarkSquareSolid, AlertTriangleSolid, TraySolid, BoxSolid, ChevronLeftChevronRightSolid, MessageBubble2Solid, GearSolid, GiftboxSolid, PenToolSolid, ShieldSolid, LockSolid, Square4GridSolid, BookOpenSolid, QuestionCircleSolid, MinusCircleSolid, PlusCircleSolid, InfoCircleSolid, ArrowCircleUpSolid, ArrowCircleDownSolid, AlertCircleSolid, CompassSolid, EmojiFrownSolid, EmojiSmileSolid, ArrowShapeTurnRightSolid, ArrowShapeTurnLeftSolid, ArrowDownSolid, ArrowUpSolid, CheckmarkSolid, HouseSolid, ClockSolid, ArchiveboxSolid, HeadphonesSolid, PaperPlaneSolid, ShapeRhombusSolid, Poop, ShapeTriangleSolid, ShapeCircleSolid, ShapeSquareSolid, TrashSolid, BrushPaintSolid, AsteriskSolid, RocketSolid, LeafSolid, TestIt, Pizza, Yoonion.
color
Цвет иконки типа. По умолчанию Gray.
color: Sky
Возможные значения: Sky, Mint, Yellow, Amber, Slate, Tomato, Red, Crimson, Pink, Plum, Purple, Violet, Indigo, Blue, Cyan, Teal, Green, Grass, Orange, Brown, Gold, Bronze, Gray.
workflow (обязательный)
Название или идентификатор workflow для типа по умолчанию
workflow: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
workflow: "Процес по умолчанию"
attributeIds
Список идентификаторов кастомных атрибутов, ассоциированных с типом.
attributeIds: [ "3fa85f64-5717-4562-b3fc-2c963f66afa6" ]
progressType
Способ расчета прогресса задач для данного типа (ByStatus, ByChildren, ByMetric). По умолчанию не задано.
progressType: "ByStatus"
estimatesInTime
Включение оценки задач данного типа в единицах времени. По умолчанию false - выключено.
estimatesInTime: false
estimatesInStoryPoints
Включение оценки задач данного типа в относительных единицах. По умолчанию false - выключено.
estimatesInStoryPoints: false
showTimeTracking
Включение учета времени в задачах данного типа. По умолчанию false - выключено.
showTimeTracking: false
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"color": "Sky",
"icon": "BugSolid",
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"attributes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"type": "UniString",
"options": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
],
"workitemTypes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
],
"progressType": "ByStatus",
"estimatesInTime": true,
"estimatesInStoryPoints": true,
"showTimeTracking": true
}
Описание модели типа приведено в Описание возвращаемой модели типа задачи.
Изменение типа задачи
Изменяет параметр типа задачи
PATCH /cwm/public/api/v1/workspaces/{workspace}/types/{type}
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
type
(обязательный)
Идентификатор или название типа
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Задача
Тело запроса
{
"name": "string",
"icon": "BugSolid",
"color": "Sky",
"workflow": "string",
"attributeIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"progressType": "ByStatus",
"estimatesInTime": false,
"estimatesInStoryPoints": false,
"showTimeTracking": false
}
Параметры тела запроса
name
Название типа
name: Новый тип
icon
Название иконки типа. По умолчанию:
CheckmarkSquareSolid
.
icon: BugSolid
Возможные значения:
BugSolid
, BookmarkSolid
, ZapSolid
, Layers3Solid
,
CrownSolid
, DocSolid
, FlameSolid
, EyeSolid
, LightSolid
, StarSolid
,
CheckmarkCircleSolid
, FlagSolid
, ChartPieSolid
, UmbrellaSolid
,
WaveformEcgSolid
, KeySolid
, HeartSolid
, CheckmarkSquareSolid
,
AlertTriangleSolid
, TraySolid
, BoxSolid
, ChevronLeftChevronRightSolid
,
MessageBubble2Solid
, GearSolid
, GiftboxSolid
, PenToolSolid
, ShieldSolid
,
LockSolid
, Square4GridSolid
, BookOpenSolid
, QuestionCircleSolid
,
MinusCircleSolid
, PlusCircleSolid
, InfoCircleSolid
, ArrowCircleUpSolid
,
ArrowCircleDownSolid
, AlertCircleSolid
, CompassSolid
, EmojiFrownSolid
,
EmojiSmileSolid
, ArrowShapeTurnRightSolid
, ArrowShapeTurnLeftSolid
,
ArrowDownSolid
, ArrowUpSolid
, CheckmarkSolid
, HouseSolid
, ClockSolid
,
ArchiveboxSolid
, HeadphonesSolid
, PaperPlaneSolid
, ShapeRhombusSolid
, Poop
,
ShapeTriangleSolid
, ShapeCircleSolid
, ShapeSquareSolid
, TrashSolid
,
BrushPaintSolid
, AsteriskSolid
, RocketSolid
, LeafSolid
, TestIt
, Pizza
, Yoonion
.
color
Цвет иконки типа. По умолчанию
Gray
.
color: Sky
Возможные значения:
Sky
, Mint
, Yellow
, Amber
, Slate
, Tomato
, Red
, Crimson
,
Pink,
Plum
, Purple
, Violet
, Indigo
, Blue
, Cyan
, Teal
, Green
, Grass
, Orange
,
Brown
, Gold
, Bronze
, Gray.
workflow
Название или идентификатор процесса для типа по умолчанию
workflow: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
workflow: "Процесс по умолчанию"
attributeIds
Список идентификаторов кастомных атрибутов, ассоциированных с типом.
attributeIds: [ "3fa85f64-5717-4562-b3fc-2c963f66afa6" ]
progressType
Способ расчета прогресса задач для данного типа (
ByStatus
,ByChildren
,ByMetric
). По умолчанию не задано.
progressType: "ByStatus"
estimatesInTime
Включение оценки задач данного типа в единицах времени. По умолчанию
false
- выключено.
estimatesInTime: false
estimatesInStoryPoints
Включение оценки задач данного типа в относительных единицах. По умолчанию
false
- выключено.
estimatesInStoryPoints: false
showTimeTracking
Включение учета времени в задачах данного типа. По умолчанию
false
- выключено.
showTimeTracking: false
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"color": "Sky",
"icon": "BugSolid",
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"attributes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"type": "UniString",
"options": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
],
"workitemTypes": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
],
"progressType": "ByStatus",
"estimatesInTime": true,
"estimatesInStoryPoints": true,
"showTimeTracking": true
}
Описание модели типа приведено в подразделе Описание возвращаемой модели типа задачи.
Удаление типа
Удаляет конкретный тип задачи.
DELETE /cwm/public/api/v1/workspaces/{workspace}/types/{type}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
type
(обязательный)
Идентификатор или название типа
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Задача
Успешный ответ 204
Ended: Типы задач
Пользователи ↵
Пользователи
Получение всех пользователей
Возвращает список пользователей, соответствующих критериям поиска. По умолчанию возвращается список пользователей, имеющих системные роли.
GET /cwm/public/api/v1/users
Параметры и описание запроса
displayName
Отображаемое имя пользователя (вхождение подстроки)
?displayName=ivan
email
Адрес почты пользователя (вхождение подстроки)
?email=ivan.ivanov@teamstorm.ru
username
Логин пользователя (вхождение подстроки)
?username=ivan.ivanov
providerId
Идентификатор провайдера аутентификации
?providerId=3fa85f64-5717-4562-b3fc-2c963f66afa6
Возможно комбинирование параметров.
Тело успешного ответа 200
200
Описание возвращаемой модели
items
Список пользователей. Описание модели пользователя см. в подразделе Получение пользователя
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Получение пользователя
Возвращает информацию о конкретном пользователе.
GET /cwm/public/api/v1/users/{user}
Параметры и описание запроса
user
(обязательный)
Логин или идентификатор пользователя
ivan.ivanov
3fa85f64-5717-4562-b3fc-2c963f66afa6
providerId
Идентификатор провайдера аутентификации
?providerId=3fa85f64-5717-4562-b3fc-2c963f66afa6
Тело успешного ответа 200
200
Описание возвращаемой модели пользователя
id
Идентификатор пользователя
displayName
Отображаемое имя пользователя
username
Логин пользователя
email
Почтовый адрес пользователя
providerId
Идентификатор провайдера аутентификации
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Пользователи
Группы ↵
Группы
Получение всех групп
Возвращает список групп, соответствующих критериям поиска. По умолчанию возвращается список групп, имеющих системные роли.
GET /cwm/public/api/v1/user-groups
Параметры и описание запроса
name
Название группы (вхождение подстроки)
?name=Администраторы
Тело успешного ответа 200
Получение группы
Возвращает конкретную группу.
GET /cwm/public/api/v1/user-groups/{groupId}
Параметры и описание запроса
groupId
(обязательный)
Идентификатор группы
3fa85f64-5717-4562-b3fc-2c963f66afa6
Тело успешного ответа 200
Описание возвращаемой модели группы
id
Идентификатор группы
name
Название группы
Ended: Группы
Рабочие процессы ↵
Рабочие процессы
Получение рабочих процессов пространства
Возвращает список рабочих процессов для пространства, соответствующих критериям поиска.
GET /cwm/public/api/v1/workspaces/{workspace}/workflows
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
name
Название процесса (вхождение подстроки)
Bug Workflow
Тело успешного ответа 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"type": "Workitem",
"description": "string",
"transitions": [
{
"transitionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fromStatus": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"nextStatus": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"fromAllStatuses": true,
"isInitial": true
}
],
"statuses": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"positionX": 0,
"positionY": 0
}
]
}
]
}
Описание возвращаемой модели
items
Список процессов. Описание модели процесса представлено в разделе Описание возвращаемой модели рабочего процесса
Получение рабочего процесса
Возвращает конкретный рабочий процесс.
GET /cwm/public/api/v1/workspaces/{workspace}/workflows/{workflow}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workflow
(обязательный)
Идентификатор или название процесса
Bug Workflow
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"type": "Workitem",
"description": "string",
"transitions": [
{
"transitionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fromStatus": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"nextStatus": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"fromAllStatuses": true,
"isInitial": true
}
],
"statuses": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"positionX": 0,
"positionY": 0
}
]
}
Описание возвращаемой модели рабочего процесса
id
Идентификатор процесса
name
Название процесса
type
Тип процесса (для задач или для портфеля)
description
Описание процесса
transitions
Список переходов. Идентификатор перехода, начальный статус перехода, конечный статус перехода, флаг возможности перехода в конечный из любого статуса, флаг начального перехода процесса.
"transitions": [
{
"transitionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fromStatus": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"nextStatus": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"fromAllStatuses": true,
"isInitial": true
}
]
statuses
Список статусов в процессе.
Создание рабочего процесса
Создает новый рабочий процесс
POST /cwm/public/api/v1/workspaces/{workspace}/workflows
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело запроса
{
"name": "string",
"transitions": [
{
"fromStatusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nextStatusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"isInitial": true
}
],
"statuses": [
{
"statusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"positionX": 0,
"positionY": 0
}
]
}
Параметры тела запроса
name (обязательный)
Название рабочего процесса
name: Название процесса
transitions (обязательный)
Список переходов рабочего процесса. Идентификатор начального статуса перехода, идентификатор конечного статуса перехода, признак начального перехода процесса.
"transitions": [
{
"fromStatusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nextStatusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"isInitial": true
}
]
statuses (обязательный)
Статусы рабочего процесса. Идентификатор статуса, координата X на канвасе, координата Y на канвасе.
"statuses": [
{
"statusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"positionX": 0,
"positionY": 0
}
]
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"type": "Workitem",
"description": "string",
"transitions": [
{
"transitionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fromStatus": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"nextStatus": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"fromAllStatuses": true,
"isInitial": true
}
],
"statuses": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"positionX": 0,
"positionY": 0
}
]
}
Описание модели рабочего процесса приведено в Описание возвращаемой модели рабочего процесса.
Изменение рабочего процесса
Изменяет параметры рабочего процесса
PATCH /cwm/public/api/v1/workspaces/{workspace}/workflows/{workflow}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workflow
(обязательный)
Идентификатор или название процесса
Bug Workflow
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
{
"name": "string",
"transitions": [
{
"fromStatusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nextStatusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"isInitial": true
}
],
"statuses": [
{
"statusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"positionX": 0,
"positionY": 0
}
]
}
Параметры тела запроса
name
Название рабочего процесса
name: Название процесса
transitions
Список переходов рабочего процесса. Идентификатор начального статуса перехода, идентификатор конечного статуса перехода, признак начального перехода процесса.
"transitions": [
{
"fromStatusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nextStatusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"isInitial": true
}
]
statuses
Статусы рабочего процесса. Идентификатор статуса, координата X на канвасе, координата Y на канвасе.
"statuses": [
{
"statusId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"positionX": 0,
"positionY": 0
}
]
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"type": "Workitem",
"description": "string",
"transitions": [
{
"transitionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fromStatus": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"nextStatus": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"fromAllStatuses": true,
"isInitial": true
}
],
"statuses": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"positionX": 0,
"positionY": 0
}
]
}
Описание модели рабочего процесса приведено в Описание возвращаемой модели рабочего процесса.
Удаление рабочего процесса
Удаляет пользовательский атрибут
DELETE /cwm/public/api/v1/workspaces/{workspace}/workflows/{workflow}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
workflow
(обязательный)
Идентификатор или название процесса
Bug Workflow
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный статус запроса 204
.
Ended: Рабочие процессы
Пространства ↵
Пространства
Получение пространства
Возвращает информацию о конкретном пространстве.
GET /cwm/public/api/v1/workspaces/{workspace}
Параметры запроса
- workspace (обязательный) Описание: Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
}
Параметры и описание возвращаемой модели пространства
id
Идентификатор пространства
key
Ключ пространства
name
Название пространства
description
Описание пространства
author
Создатель пространства. Идентификатор, отображаемое имя, логин и почта пользователя.
Получение пространств
Возвращает пагинированный список пространств, соответсвующих критериям поиска.
GET /cwm/public/api/v1/workspaces
Параметры запроса
key
Ключ пространства для поиска
?key=KEY
name
Название пространства для поиска
?name=Название
fromToken
Токен запрашиваемой страницы
?fromToken=f5ce1753
maxItemsCount
Максимальное кол-во задач на странице (по умолчанию: 50)
?maxItemsCount=200
Тело успешного ответа 200
{
"fromToken": "string",
"maxItemsCount": 0,
"nextToken": "string",
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
}
]
}
Описание возвращаемой модели
fromToken
Токен текущей страницы результатов
maxItemsCount
Кол-во запрошенных элементов на странице результатов
nextToken
Токен следующей страницы результатов
items
Список пространств. Модель пространства описана в таблице Описание возвращаемой модели пространства.
Создание пространства
Добавляет новое пространство с указанными параметрами
POST /cwm/public/api/v1/workspaces
Тело запроса
Параметры тела запроса
name
(обязательный)
Название пространства
name: {str:255}
key (обязательный)
Ключ пространства
key: {str:10}
description
Описание пространства
name: {str:MAX}
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
}
Описание модели пространства приведено в таблице Описание возвращаемой модели пространства.
Изменение пространства
Изменяет параметры существующего пространства
PATCH /cwm/public/api/v1/workspaces/{workspace}
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело запроса
{
"name": "Ry>n?>3dqwsZ~5ASVkBaPV<rkgPX7FVK2r!!_]ix6}'k;7h0?7U%EKY_6wFu>4J|Dfh1Z'+TEY'e0qK:b[UUY^nCMI&",
"description": "string"
}
Параметры тела запроса
name
Название пространства
name: {str:255}
description
Описание пространства
name: {str:MAX}
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
}
Описание модели пространства приведено в таблице Описание возвращаемой модели пространства.
Удаление пространства
Удаляет указанное пространство
DELETE /cwm/public/api/v1/workspaces/{workspace}
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/work items
Успешный статус запроса 204.
Ended: Пространства
Пользователи пространства ↵
Пользователи пространства
Получение списка пользователей пространства
Возвращает пагинированный список пользователей пространства, соответсвующих критериям поиска.
GET /cwm/public/api/v1/workspaces/{workspace}/users
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/users
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/users
displayName
Отображаемое имя пользователя для поиска
?displayName=ivanov
roleId
Идентификатор роли пользователя для поиска
?roleId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
fromToken
Токен запрашиваемой страницы
?fromToken=f5ce1753
maxItemsCount
Максимальное кол-во задач на странице (по умолчанию: 50)
?maxItemsCount=200
Тело успешного ответа 200
{
"fromToken": "string",
"maxItemsCount": 0,
"nextToken": "string",
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
}
]
}
Описание возвращаемой модели
fromToken
Токен текущей страницы результатов
maxItemsCount
Кол-во запрошенных элементов на странице результатов
nextToken
Токен следующей страницы результатов
items
Список пользователей. Модель пользователя описана в таблице Описание возвращаемой модели пользователя.
Получение всех ролей пользователя
Возвращает список всех ролей пользователя в пространстве.
GET /cwm/public/api/v1/workspaces/{workspace}/users/{userId}/roles
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/users/{userId}/roles
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/users/{userId}/roles
userId
(обязательный)
Идентификатор пользователя
/cwm/public/api/v1/workspaces/KEY/workitems/users/f5ce1753-ced5-4992-beb9-7408c1a56cf8/roles
Тело успешного ответа 200
Описание возвращаемой модели
roles
Список ролей. Отображается упрощенная возвращаемая модель роли.
Описание упрощенной возвращаемой модели роли
id
Идентификатор роли
name
Наименование роли
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Добавление пользователя в пространство
Добавляет пользователя в пространство с ролью по умолчанию.
POST /cwm/public/api/v1/workspaces/{workspace}/users/{userId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/users/{userId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/users/{userId}
userId
(обязательный)
Идентификатор пользователя
/cwm/public/api/v1/workspaces/KEY/users/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Добавление роли пользователя в пространстве
Добавляет роль пользователю в пространстве. Пользователь, у которого не было роли, добавляется в пространство.
POST /cwm/public/api/v1/workspaces/{workspace}/users/{userId}/roles/{roleId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
userId
(обязательный)
Идентификатор пользователя
/cwm/public/api/v1/workspaces/KEY/workitems/users/f5ce1753-ced5-4992-beb9-7408c1a56cf8
roleId
(обязательный)
Идентификатор добавляемой роли
/cwm/public/api/v1/workspaces/KEY/workitems/users/{userId}/roles/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный ответ 204
Снятие роли у пользователя в пространстве
Удаляет роль пользователя в пространстве.
Запрещено удалять последнюю или единственную роль у пользователя. Если необходимо удалить определенную роль, которая остается единственной, необходимо сперва назначить пользователю другую роль через API или графический интерфейс.
DELETE /cwm/public/api/v1/workspaces/{workspace}/users/{userId}/roles/{roleId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/users/{userId}/roles/{roleId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/users/{userId}/roles/{roleId}
userId
(обязательный)
Идентификатор пользователя
/cwm/public/api/v1/workspaces/KEY/workitems/users/f5ce1753-ced5-4992-beb9-7408c1a56cf8
roleId
(обязательный)
Идентификатор снимаемой роли
/cwm/public/api/v1/workspaces/KEY/workitems/users/{userId}/roles/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Удаление пользователя
Удаляет пользователя из пространства.
DELETE /cwm/public/api/v1/workspaces/{workspace}/users/{userId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/users/{userId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/users/{userId}
userId
(обязательный)
Идентификатор пользователя
/cwm/public/api/v1/workspaces/KEY/workitems/users/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Пользователи пространства
Группы пространства ↵
Группы пространства
Получение групп пространства
Возвращает пагинированный список групп пространства, соответствующих критериям поиска.
GET /cwm/public/api/v1/workspaces/{workspace}/groups
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
name
Название группы для поиска
?displayName=admins
roleId
Идентификатор роли группы для поиска
?roleId=f5ce1753-ced5-4992-beb9-7408c1a56cf8
fromToken
Токен запрашиваемой страницы
?fromToken=f5ce1753
maxItemsCount
Максимальное кол-во задач на странице (по умолчанию: 50)
?maxItemsCount=200
Тело успешного ответа 200
{
"fromToken": "string",
"maxItemsCount": 0,
"nextToken": "string",
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
Описание возвращаемой модели
fromToken
Токен текущей страницы результатов
maxItemsCount
Кол-во запрошенных элементов на странице результатов
nextToken
Токен следующей страницы результатов
items
Список групп. Модель пользователя описана в таблице Описание возвращаемой модели группы.
Получение всех ролей группы
Возвращает список всех ролей группы в пространстве.
GET /cwm/public/api/v1/workspaces/{workspace}/groups/{groupId}/roles
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/groups/{groupId}/roles
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/groups/{groupId}/roles
groupId
(обязательный)
Идентификатор группы
/cwm/public/api/v1/workspaces/KEY/workitems/groups/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
Описание возвращаемой модели
roles
Список ролей. Отображается упрощенная возвращаемая модель роли.
Описание упрощенной возвращаемой модели роли
id
Идентификатор роли
name
Наименование роли
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Добавление группы в пространство
Добавляет группу в пространство с ролью по умолчанию.
POST /cwm/public/api/v1/workspaces/{workspace}/groups/{groupId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/groups/{groupId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/groups/{groupId}
groupId
(обязательный)
Идентификатор группы
/cwm/public/api/v1/workspaces/KEY/workitems/groups/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Добавление роли группе в пространстве
Добавляет роль группе в пространстве. Группа, у которой не было роли, добавляется в пространство.
POST /cwm/public/api/v1/workspaces/{workspace}/groups/{groupId}/roles/{roleId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/groups
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
groupId
(обязательный)
Идентификатор группы
/cwm/public/api/v1/workspaces/KEY/workitems/groups/f5ce1753-ced5-4992-beb9-7408c1a56cf8
roleId
(обязательный)
Идентификатор добавляемой роли
/cwm/public/api/v1/workspaces/KEY/workitems/groups/{groupId}/roles/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный ответ 204
Снятие роли у группы в пространстве
Снимает роль группы в пространстве. Группа, у которой не остается роли, удаляется из пространства.
DELETE /cwm/public/api/v1/workspaces/{workspace}/groups/{groupId}/roles/{roleId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
groupId
(обязательный)
Идентификатор группы
/cwm/public/api/v1/workspaces/KEY/workitems/groups/f5ce1753-ced5-4992-beb9-7408c1a56cf8
roleId
(обязательный)
Идентификатор удаляемой роли
/cwm/public/api/v1/workspaces/KEY/workitems/groups/{groupId}/roles/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный ответ 204
Удаление группы
Удаляет группу из пространства.
DELETE /cwm/public/api/v1/workspaces/{workspace}/groups/{groupId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/groups/{groupId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/groups/{groupId}
groupId
(обязательный)
Идентификатор группы
/cwm/public/api/v1/workspaces/KEY/workitems/groups/f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Группы пространства
Роли ↵
Роли
Получение роли
Возвращает информацию о конкретной роли.
GET /cwm/public/api/v1/workspaces/{workspace}/roles/{roleId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
roleId
Идентификатор роли
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"isSystem": true,
"permissions": [
"WorkspaceContentRead"
]
}
Описание возвращаемой модели роли
id
Идентификатор роли
name
Наименование роли
author
Создатель роли
isSystem
Признак системной неизменяемой роли
permissions
Список разрешений роли
Возможные значения в списке: WorkspaceContentRead
, WorkspaceEdit
, WorkspaceAccessEdit
,
WorkspaceIntegrationsEdit
, WorkspaceDelete
, WorkspaceWorkitemTypesEdit
,
WorkspaceAttributesEdit
, WorkspaceWorkflowsEdit
, WorkspaceAutomationRulesEdit
,
WorkspaceFolderCreate
, WorkspaceFolderEdit
, WorkspaceFolderDelete
,
WorkspaceViewCreate
, WorkspaceViewEdit
, WorkspaceViewDelete
, WorkitemCreate
,
WorkitemAssignEdit
, WorkitemStatusEdit
, WorkitemStatusEditForce
,
WorkitemAttributesEdit
, WorkitemAttachmentsCreate
, WorkitemAttachmentsDelete
,
WorkitemCommentsCreate
, WorkitemCommentsEdit
, WorkitemCommentsDelete
,
WorkitemCommentsForceDelete
, WorkitemRelationsCreate
, WorkitemRelationsDelete
,
WorkitemDelete
, WorkitemMove
, WorkitemTimeTrackCreateEditDelete
,
WorkitemTimeTrackEditDeleteForce
, WorkspaceTimeTrackReport
, WorkspaceExport
,
ExtensionsEdit
, WorkitemSharing
.
Получение списка ролей в пространстве с фильтрацией и пагинацией
Возвращает список ролей пространства, соответствующих параметрам запроса.
GET /cwm/public/api/v1/workspaces/{workspace}/workitems
Параметры и описание запроса
workspace
(обязательный)"
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
name
Наименование роли (поиск по вхождению подстроки)
?name={string:255}
isSystemRole
Признак выводить только системные или не системные роли
?isSystemRole=True
fromToken
Токен запрашиваемой страницы
?fromToken=f5ce1753
maxItemsCount
Максимальное кол-во ролей на странице (по умолчанию: 50)
?maxItemsCount=200
Возможно комбинирование нескольких параметров фильтрации.
Тело успешного ответа 200
"
200
{
"fromToken": "string",
"maxItemsCount": 0,
"nextToken": "string",
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"isSystem": true,
"permissions": [
"WorkspaceContentRead"
]
}
]
}
Описание возвращаемой модели
items
Список ролей. Модель роли описана в разделе Получение роли
fromToken
Токен запрошенной страницы результатов
maxItemsCount
Запрошенное кол-во элементов на странице результатов
nextToken
Токен следующей страницы результатов
Создание роли
Создает новую роль в пространстве
POST /cwm/public/api/v1/workspaces/{workspace}/roles
Параметры запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
Тело запроса
Параметры тела запроса
name
(обязательный)
Наименование роли
name: Название роли
permissions
(обязательный)
Список разрешений роли
permissions: [ "WorkspaceContentRead" ]
Возможные значения:
WorkspaceContentRead
, WorkspaceEdit
, WorkspaceAccessEdit
,
WorkspaceIntegrationsEdit
, WorkspaceDelete
, WorkspaceWorkitemTypesEdit
,
WorkspaceAttributesEdit
, WorkspaceWorkflowsEdit
, WorkspaceAutomationRulesEdit
,
WorkspaceFolderCreate
, WorkspaceFolderEdit
, WorkspaceFolderDelete
,
WorkspaceViewCreate
, WorkspaceViewEdit
, WorkspaceViewDelete
, WorkitemCreate
,
WorkitemAssignEdit
, WorkitemStatusEdit
, WorkitemStatusEditForce
,
WorkitemAttributesEdit
, WorkitemAttachmentsCreate
, WorkitemAttachmentsDelete
,
WorkitemCommentsCreate
, WorkitemCommentsEdit
, WorkitemCommentsDelete
,
WorkitemCommentsForceDelete
, WorkitemRelationsCreate
, WorkitemRelationsDelete
,
WorkitemDelete
, WorkitemMove
, WorkitemTimeTrackCreateEditDelete
,
WorkitemTimeTrackEditDeleteForce
, WorkspaceTimeTrackReport
, WorkspaceExport
,
ExtensionsEdit
, WorkitemSharing
.
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"isSystem": true,
"permissions": [
"WorkspaceContentRead"
]
}
Описание модели роли представлена в разделе Получение роли
Изменение роли
Изменяет роль в пространстве
PATCH /cwm/public/api/v1/workspaces/{workspace}/roles/{roleId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
roleId
Идентификатор роли
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Тело запроса
Параметры тела запроса
name
Наименование роли
name: Название роли
permissions
Список разрешений роли
permissions: [ "WorkspaceContentRead" ]
Возможные значения:
WorkspaceContentRead
, WorkspaceEdit
, WorkspaceAccessEdit
,
WorkspaceIntegrationsEdit
, WorkspaceDelete
, WorkspaceWorkitemTypesEdit
,
WorkspaceAttributesEdit
, WorkspaceWorkflowsEdit
, WorkspaceAutomationRulesEdit
,
WorkspaceFolderCreate
, WorkspaceFolderEdit
, WorkspaceFolderDelete
,
WorkspaceViewCreate
, WorkspaceViewEdit
, WorkspaceViewDelete
, WorkitemCreate
,
WorkitemAssignEdit
, WorkitemStatusEdit
, WorkitemStatusEditForce
,
WorkitemAttributesEdit
, WorkitemAttachmentsCreate
, WorkitemAttachmentsDelete
,
WorkitemCommentsCreate
, WorkitemCommentsEdit
, WorkitemCommentsDelete
,
WorkitemCommentsForceDelete
, WorkitemRelationsCreate
, WorkitemRelationsDelete
,
WorkitemDelete
, WorkitemMove
, WorkitemTimeTrackCreateEditDelete
,
WorkitemTimeTrackEditDeleteForce
, WorkspaceTimeTrackReport
, WorkspaceExport
,
ExtensionsEdit
, WorkitemSharing
.
Тело успешного ответа 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string"
},
"isSystem": true,
"permissions": [
"WorkspaceContentRead"
]
}
Описание модели роли представлена в разделе Описание возвращаемой модели роли
Удаление роли
Удаляет роль.
Запрещено удалять роль, если эта роль является единственной у какого-либо пользователя.
Если необходимо удалить определенную роль, которая у какого-либо пользователя является единственной, необходимо сперва создать другую роль через API или графический интерфейс.
DELETE /cwm/public/api/v1/workspaces/{workspace}/roles/{roleId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/workitems
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/workitems
roleId
Идентификатор роли
f5ce1753-ced5-4992-beb9-7408c1a56cf8
Успешный статус запроса 204
.
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
404 (Not Found)
Несуществующее расположение
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Роли
Запросы ↵
Запросы
Получение типа доступа к запросу
Возвращает данные о типе доступа к запросу (видимость запроса)
GET /cwm/public/api/v1/workspaces/{workspace}/queries/{queryId}/visibility
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/queries
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/queries
queryId
(обязательный)
Идентификатор запроса
?queryId=f5ce1758-ced5-4892-beb9-7408c1a56cf8
Тело успешного ответа 200
{
"visibilityType": "Author",
"accessList": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
{
"type": "Group",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
]
}
Описание возвращаемой модели доступа к запросу
visibilityType
Тип доступа к запросу:
Author
(виден только автору)Workspace
(виден всем пользователям пространства)OnlySelected
(виден только выбранным пользователям)ExceptSelected
(виден всем, кроме выбранных пользователей)
accessList
Список доступа. Пользователи или группы пользователей Тип (пользователь или группа), идентификатор типа, данные о пользователе или группе
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Изменение типа доступа к запросу
Изменяет тип доступа к запросу (видимость запроса)
PUT /cwm/public/api/v1/workspaces/{workspace}/queries/{queryId}/visibility
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/TS/queries
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/queries
queryId
(обязательный)
Идентификатор запроса
?queryId=f5ce1758-ced5-4892-beb9-7408c1a56cf8
Тело запроса
{
"visibilityType": "Author",
"accessList": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": "User"
}
]
}
Параметры тела запроса
visibilityType
(обязательный)
Тип доступа к запросу:
Author
(виден только автору)Workspace
(виден всем пользователям пространства)OnlySelected
(виден только выбранным пользователям)ExceptSelected
(виден всем, кроме выбранных пользователей)
accessList
(обязательный)
Список доступа. Пользователи или группы пользователей Идентификатор, тип (пользователь или группа:
User
,Group
)"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
"type": "User"
Тело успешного ответа 200
{
"visibilityType": "Author",
"accessList": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"user": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
{
"type": "Group",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
}
]
}
Описание возвращаемой модели доступа к запросу
visibilityType
Тип доступа к запросу:
Author
(виден только автору)Workspace
(виден всем пользователям пространства)OnlySelected
(виден только выбранным пользователям)ExceptSelected
(виден всем, кроме выбранных пользователей)
accessList
Список доступа. Пользователи или группы пользователей Тип (пользователь или группа), идентификатор типа, данные о пользователе или группе Описание возвращаемых моделей пользователя и группы см. в разделах Пользователи, Группы.
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Получение результатов запроса
Возвращает пагинированный список задач из указанного запроса.
При выполнении учитываются права доступа пользователя к указанному запросу.
GET /cwm/public/api/v1/queries/{queryId}/workitems
Параметры запроса
queryId
(обязательный)
Идентификатор запроса
?queryId=f5ce1758-ced5-4892-beb9-7408c1a56cf8
fromToken
Токен запрашиваемой страницы
?fromToken=f5ce1753
maxItemsCount
Максимальное количество задач на странице (по умолчанию: 50)
?maxItemsCount=200
Тело успешного ответа 200
Нажмите, чтобы увидеть пример
{
"fromToken": "string",
"maxItemsCount": 0,
"nextToken": "string",
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"type": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"status": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"startDate": "2024-11-16T14:59:32.992Z",
"endDate": "2024-11-16T14:59:32.992Z",
"createdDate": "2024-11-16T14:59:32.992Z",
"dueDate": "2024-11-16T14:59:32.992Z",
"assignee": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"sprint": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"folder": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"originalEstimate": 0,
"timeSpent": 0,
"remainingEstimate": 0,
"storyPoints": 0,
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"changeDate": "2024-11-16T14:59:32.992Z",
"parent": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nodeType": "Folder"
},
"attributes": [
{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "string"
},
{
"type": "Number",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
},
{
"type": "Date",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "2024-11-16T14:59:32.992Z"
},
{
"type": "UniSelect",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
{
"type": "Tag",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
{
"type": "TimeDuration",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
}
],
"portfolios": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"elements": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
],
"workspace": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
}
]
}
Описание возвращаемой модели
fromToken
Токен запрашиваемой страницы
maxItemsCount
Максимальное количество задач на странице
nextToken
Токен следующей страницы
items
Список задач. Описание ролевой модели задачи см. в разделе Получение задачи
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Запросы
Трудозатраты ↵
Трудозатраты
Получение записей трудозатрат с фильтрацией и пагинацией
Возвращает записи о трудозатратах.
GET /cwm/public/api/v1/workspaces/time-tracking-entries
Параметры и описание запроса
startDate
(обязательный)"
Дата начала периода отчета
2022-03-03
endDate
Дата окончания периода отчета
2022-04-03
users
Список логинов авторов списаний. Для пустого списка пользователей не возвращаются результаты
ivan.ivanov,petr.petrov
WithDeleted
Включая удаления
true
/false
fromToken
Токен запрашиваемой страницы
?fromToken=f5ce1753
maxItemsCount
"
Максимальное кол-во задач на странице (по умолчанию: 50)
?maxItemsCount=200
Тело успешного ответа 200
Нажмите, чтобы посмотреть пример
{
"fromToken": "string",
"maxItemsCount": 0,
"nextToken": "string",
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"date": "2024-10-28T10:21:16.536Z",
"spentTime": 0,
"description": "string",
"createdAt": "2024-10-28T10:21:16.536Z",
"updatedAt": "2024-10-28T10:21:16.536Z",
"deletedAt": "2024-10-28T10:21:16.536Z",
"deleteUserId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"deleteUser": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"workitem": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"type": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"status": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"startDate": "2024-10-28T10:21:16.536Z",
"endDate": "2024-10-28T10:21:16.536Z",
"createdDate": "2024-10-28T10:21:16.536Z",
"dueDate": "2024-10-28T10:21:16.536Z",
"assignee": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"sprint": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"folder": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"originalEstimate": 0,
"timeSpent": 0,
"remainingEstimate": 0,
"storyPoints": 0,
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"changeDate": "2024-10-28T10:21:16.536Z",
"parent": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nodeType": "Folder"
},
"attributes": [
{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "string"
},
{
"type": "Number",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
},
{
"type": "Date",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "2024-10-28T10:21:16.536Z"
},
{
"type": "UniSelect",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
{
"type": "Tag",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
{
"type": "TimeDuration",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
}
],
"portfolios": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"elements": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
],
"workspace": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
},
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
]
}
Описание возвращаемой модели
fromToken
Токен текущей страницы результатов
maxItemsCount
Количество запрошенных элементов на странице результатов
nextToken
Токен следующей страницы результатов
items
Список записей трудозатрат.
Модель записи трудозатрат приведена ниже.
Описание модели записи трудозатрат
id
Идентификатор записи трудозатрат
date
Дата, в которую было затрачено время записи
spentTime
Затраченное время в секундах
description
Описание затраченного времени
createdAt
Дата и время создания записи трудозатрат
updatedAt
Дата и время обновления записи трудозатрат
deleteUserId
Идентификатор пользователя, удалившего запись
deletedAT
Дата и время удаления записи трудозатрат
deleteUser
Данные пользователя, удалившего запись Соответствуют описанию возвращаемой модели пользователя
workitem
Задача, по которой добавлена запись трудозатрат. Соответствует модели задачи, описанной в описании возвращаемой модели задачи.
author
Автор записи. Идентификатор, отображаемое имя, логин и почта пользователя.
Ошибки
401 (Unauthorized)
Неавторизованный запрос
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Получение записей о измененных списаниях
Возвращает записи о измененных списаниях трудозатрат.
GET /cwm/public/api/v1/workspaces/time-tracking-entries/updates
Параметры и описание запроса
startDate
(обязательный)
Дата начала периода отчета
2022-03-03
endDate
(обязательный)
Дата окончания периода отчета
2022-04-03
WithDeleted
Включая удаления
true
/false
users
Список логинов авторов списаний. Для пустого списка пользователей не возвращаются результаты
ivan.ivanov,petr.petrov
fromToken
Токен запрашиваемой страницы
?fromToken=f5ce1753
maxItemsCount
Максимальное кол-во задач на странице (по умолчанию: 50)
?maxItemsCount=200
Тело успешного ответа 200
Нажмите, чтобы посмотреть пример
{
"fromToken": "string",
"maxItemsCount": 0,
"nextToken": "string",
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"date": "2024-10-24T15:24:35.682Z",
"spentTime": 0,
"description": "string",
"createdAt": "2024-10-24T15:24:35.682Z",
"updatedAt": "2024-10-24T15:24:35.682Z",
"deletedAt": "2024-10-24T15:24:35.682Z",
"deleteUserId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"deleteUser": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"workitem": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"type": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"workflow": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"status": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"category": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
"startDate": "2024-10-24T15:24:35.682Z",
"endDate": "2024-10-24T15:24:35.682Z",
"createdDate": "2024-10-24T15:24:35.682Z",
"dueDate": "2024-10-24T15:24:35.682Z",
"assignee": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"sprint": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"folder": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
},
"originalEstimate": 0,
"timeSpent": 0,
"remainingEstimate": 0,
"storyPoints": 0,
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"changeDate": "2024-10-24T15:24:35.682Z",
"parent": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nodeType": "Folder"
},
"attributes": [
{
"type": "UniString",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "string"
},
{
"type": "Number",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
},
{
"type": "Date",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": "2024-10-24T15:24:35.682Z"
},
{
"type": "UniSelect",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
},
{
"type": "Tag",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
},
{
"type": "User",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
{
"type": "TimeDuration",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"value": 0
}
],
"portfolios": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"elements": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string"
}
]
}
],
"workspace": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"key": "string",
"name": "string",
"description": "string",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
},
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
]
}
Описание возвращаемой модели
fromToken
Токен текущей страницы результатов
maxItemsCount
Количество запрошенных элементов на странице результатов
nextToken
Токен следующей страницы результатов
items
Список записей трудозатрат.
Модель записи трудозатрат приведена ниже.
Описание модели записи трудозатрат
id
Идентификатор записи трудозатрат
date
Дата, в которую было затрачено время записи
spentTime
Затраченное время в секундах
description
Описание затраченного времени
createdAt
Дата и время создания записи трудозатрат
updatedAt
Дата и время обновления записи трудозатрат
deletedAT
Дата и время удаления записи трудозатрат
deleteUserId
Идентификатор пользователя, удалившего запись
deleteUser
Данные пользователя, удалившего запись Соответствуют описанию возвращаемой модели пользователя
workitem
Задача, по которой добавлена запись трудозатрат. Соответствует модели задачи, описанной в описании возвращаемой модели задачи.
Ошибки
401 (Unauthorized)
Неавторизованный запрос
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Ended: Трудозатраты
Интеграция с Git ↵
Интеграция с Git
Получение списка токенов
Возвращает список токенов для интеграции пространства с GitLab или GitFlic.
GET /cwm/public/api/v1/workspaces/{workspace}/git-integration-tokens
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/git-integration-tokens
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/git-integration-tokens
Тело успешного ответа 200
200
{
"tokens": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"url": "string",
"createdAt": "2024-11-17T13:56:08.992Z",
"updatedAt": "2024-11-17T13:56:08.992Z",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"type": "GitLab"
}
]
}
Описание возвращаемой модели
tokens
Список токенов. Описание возвращаемой модели токена см. в разделе Получение токена.
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Получение токена
Возвращает конкретный токен для интеграции пространства с GitLab или GitFlic.
GET /cwm/public/api/v1/workspaces/{workspace}/git-integration-tokens/{tokenId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/git-integration-tokens/{tokenId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/git-integration-tokens/{tokenId}
tokenId
(обязательный)
Идентификатор токена
?tokenId=3fa85f64-5717-4562-b3fc-2c963f66afa6
Тело успешного ответа 200
200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"url": "string",
"createdAt": "2024-11-17T14:40:26.677Z",
"updatedAt": "2024-11-17T14:40:26.677Z",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"type": "GitLab"
}
Описание возвращаемой модели токена
id
Идентификатор токена
name
Название токена
url
URL-адрес подключения
createdAt
Дата и время создания токена
updatedAt
Дата и время изменения токена
author
Пользователь, создавший токен. Данные о пользователе соответствуют описанию возвращаемой модели пользователя.
changedBy
Пользователь, изменивший токен. Данные о пользователе соответствуют описанию возвращаемой модели пользователя.
type
Тип токена. Возможные значения:
GitLab
GitFlic
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Добавление токена
Добавляет токен интеграции пространства c GitLab или GitFlic
POST /cwm/public/api/v1/workspaces/{workspace}/git-integration-tokens
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/git-integration-tokens/{tokenId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/git-integration-tokens/{tokenId}
Тело запроса
```json
{
"name": "string",
"type": "GitLab"
}
```
Параметры тела запроса
name
Название токена
type
Тип токена. Возможные значения:
GitLab
GitFlic
Тело успешного ответа 200
200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"url": "string",
"createdAt": "2024-11-17T20:15:42.786Z",
"updatedAt": "2024-11-17T20:15:42.786Z",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"type": "GitLab",
"token": "string"
}
Описание возвращаемой модели с отображением токена
Описание основной возвращаемой модели токена см. в разделе Получение токена.
token
Значение токена
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Замена названия токена
Заменяет название токена интеграции пространства с GitLab или GitFlic.
PUT /cwm/public/api/v1/workspaces/{workspace}/git-integration-tokens/{tokenId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/git-integration-tokens/{tokenId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/git-integration-tokens/{tokenId}
tokenId
(обязательный)
Идентификатор токена
?tokenId=3fa85f64-5717-4562-b3fc-2c963f66afa6
Тело запроса
```json
{
"name": "string"
}
```
Параметры тела запроса
name
Название токена
Тело успешного ответа 200
200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"url": "string",
"createdAt": "2024-11-17T17:08:03.728Z",
"updatedAt": "2024-11-17T17:08:03.728Z",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"type": "GitLab"
}
Описание возвращаемой модели токена
Описание возвращаемой модели токена см. в разделе Получение токена.
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Обновление токена
Обновляет (перегенерирует) токен интеграции пространства с GitLab или GitFlic.
PUT /cwm/public/api/v1/workspaces/{workspace}/git-integration-tokens/{tokenId}/refresh
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/git-integration-tokens/{tokenId}/refresh
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/git-integration-tokens/{tokenId}/refresh
tokenId
(обязательный)
Идентификатор токена
?tokenId=3fa85f64-5717-4562-b3fc-2c963f66afa6
Тело успешного ответа 200
200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"url": "string",
"createdAt": "2024-11-17T20:15:42.786Z",
"updatedAt": "2024-11-17T20:15:42.786Z",
"author": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"changedBy": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayName": "string",
"username": "string",
"email": "string",
"providerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"type": "GitLab",
"token": "string"
}
Описание возвращаемой модели с отображением токена
Описание основной возвращаемой модели токена см. в разделе Получение токена.
token
Значение токена
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса
Удаление токена
Удаляет токен интеграции с GitLab или GitFlic из пространства.
DELETE /cwm/public/api/v1/workspaces/{workspace}/git-integration-tokens/{tokenId}
Параметры и описание запроса
workspace
(обязательный)
Ключ или идентификатор пространства
/cwm/public/api/v1/workspaces/KEY/git-integration-tokens/{tokenId}
/cwm/public/api/v1/workspaces/f5ce1753-ced5-4992-beb9-7408c1a56cf8/git-integration-tokens/{tokenId}
tokenId
(обязательный)
Идентификатор токена
?tokenId=3fa85f64-5717-4562-b3fc-2c963f66afa6
Успешный ответ 204
Ошибки
400 (Bad Request)
Неправильный (несуществующий) параметр запроса
401 (Unauthorized)
Неавторизованный запрос
403 (Forbidden)
Отказ доступа к объекту
500 (Server Error)
Внутренняя ошибка сервиса