Проекты в Blue формируют фундаментальную основу для организации пользователей и данных.
Список всех проектов
Запрос projectList позволяет вам извлекать проекты с мощными возможностями фильтрации, сортировки и пагинации.
Простой пример
query ProjectListQuery {
projectList(filter: { companyIds: ["ENTER COMPANY ID"] }) {
items {
id
uid
slug
name
description
archived
color
icon
createdAt
updatedAt
allowNotification
position
unseenActivityCount
todoListsMaxPosition
lastAccessedAt
isTemplate
automationsCount
totalFileCount
totalFileSize
todoAlias
}
pageInfo {
totalPages
totalItems
page
perPage
hasNextPage
hasPreviousPage
}
}
}
Расширенный пример с фильтрацией и сортировкой
query FilteredProjectList {
projectList(
filter: {
companyIds: ["company-123", "company-456"]
archived: false
isTemplate: false
search: "marketing"
inProject: true
folderId: null # Get root-level projects only
}
sort: [position_ASC, name_ASC]
skip: 0
take: 50
) {
items {
id
name
slug
position
archived
}
totalCount
pageInfo {
totalItems
hasNextPage
}
}
}
Поля проекта
Следующая таблица описывает все доступные поля для каждого проекта в ProjectListQuery:
| Поле | Тип | Описание |
|---|---|---|
| id | ID! | Уникальный идентификатор проекта |
| uid | String! | Удобный для пользователя уникальный идентификатор проекта |
| slug | String! | Имя проекта, удобное для URL |
| name | String! | Отображаемое имя проекта |
| description | String | Краткое описание проекта |
| archived | Boolean | Булевое значение, указывающее, архивирован ли проект |
| color | String | Цвет, связанный с проектом для визуальной идентификации |
| icon | String | Иконка, связанная с проектом для визуальной идентификации |
| image | Image | Объект изображения обложки проекта |
| createdAt | DateTime! | Временная метка, когда проект был создан |
| updatedAt | DateTime! | Временная метка, когда проект был в последний раз обновлен |
| allowNotification | Boolean! | Булевое значение, указывающее, включены ли уведомления для проекта |
| position | Float! | Числовое значение, представляющее позицию проекта в списке |
| unseenActivityCount | Int! | Количество невидимых действий в проекте |
| todoListsMaxPosition | Float! | Максимальное значение позиции для списков задач в проекте |
| lastAccessedAt | DateTime | Временная метка, когда проект был в последний раз открыт |
| isTemplate | Boolean! | Булевое значение, указывающее, является ли проект шаблоном |
| isOfficialTemplate | Boolean! | Булевое значение, указывающее, является ли это официальным шаблоном Blue |
| automationsCount(isActive: Boolean) | Int! | Количество автоматизаций, связанных с проектом |
| totalFileCount | Int | Общее количество файлов в проекте |
| totalFileSize | Float | Общий размер всех файлов в проекте (в байтах) |
| todoAlias | String | Пользовательский псевдоним для "задачи", используемый в проекте |
| category | ProjectCategory! | Категория проекта (CRM, МАРКЕТИНГ и т.д.) |
| hideEmailFromRoles | [UserAccessLevel!] | Массив ролей, которые должны скрывать адреса электронной почты |
| hideStatusUpdate | Boolean | Булевое значение для скрытия обновлений статуса |
| company | Company! | Полные детали объекта компании |
| accessLevel(userId: String) | UserAccessLevel | Получить уровень доступа пользователя к конкретному проекту |
| folder | Folder | Папка, содержащая этот проект |
| features | [ProjectFeature!] | Массив включенных функций проекта |
| sequenceCustomField | CustomField | Пользовательское поле, используемое для нумерации последовательностей |
| coverConfig | TodoCoverConfig | Конфигурация для изображений обложек задач |
| hideRecordCount | Boolean | Нужно ли скрывать количество записей |
| showTimeSpentInTodoList | Boolean | Нужно ли показывать время, затраченное на списки задач |
| showTimeSpentInProject | Boolean | Нужно ли показывать время, затраченное на проект |
| todoFields | [TodoField] | Определения пользовательских полей задач |
Примечание: Вы можете запросить любую комбинацию этих полей в вашем запросе GraphQL.
Параметры пагинации
Объект pageInfo предоставляет детали пагинации для результатов запроса:
| Поле | Тип | Описание |
|---|---|---|
| totalPages | Int | Общее количество страниц результатов |
| totalItems | Int | Общее количество проектов, соответствующих запросу |
| page | Int | Номер текущей страницы |
| perPage | Int | Количество элементов на странице |
| hasNextPage | Boolean! | Булевое значение, указывающее, есть ли следующая страница результатов |
| hasPreviousPage | Boolean! | Булевое значение, указывающее, есть ли предыдущая страница результатов |
Параметры запроса
Опции фильтрации (ProjectListFilter)
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
companyIds |
[String!]! | ✅ Да | Массив идентификаторов компаний или слагов для поиска |
ids |
[String!] | Нет | Фильтровать по конкретным идентификаторам проектов |
archived |
Boolean | Нет | Фильтровать по статусу архивирования (true/false) |
isTemplate |
Boolean | Нет | Фильтровать шаблонные проекты (true/false) |
search |
String | Нет | Искать проекты по имени (без учета регистра) |
folderId |
String | Нет | Фильтровать по идентификатору папки. Используйте null для проектов на корневом уровне |
inProject |
Boolean | Нет | Фильтровать по членству пользователя. См. примечание ниже |
Примечание о фильтре inProject:
trueилиundefined: Возвращает проекты, членом которых является пользовательfalse: Возвращает проекты, в которых пользователь НЕ состоит (требуется разрешение владельца компании)- Фильтрация по папкам (
folderId) работает только тогда, когдаinProjectне являетсяfalse
Опции сортировки (ProjectSort)
| Значение | Описание |
|---|---|
id_ASC |
Сортировать по ID по возрастанию |
id_DESC |
Сортировать по ID по убыванию |
name_ASC |
Сортировать по имени по возрастанию (A-Z) |
name_DESC |
Сортировать по имени по убыванию (Z-A) |
createdAt_ASC |
Сортировать по дате создания (сначала старые) |
createdAt_DESC |
Сортировать по дате создания (сначала новые) |
updatedAt_ASC |
Сортировать по последнему обновлению (сначала старые) |
updatedAt_DESC |
Сортировать по последнему обновлению (сначала новые) |
position_ASC |
Сортировать по позиции по возрастанию* |
position_DESC |
Сортировать по позиции по убыванию* |
*Сортировка по позиции доступна только при просмотре проектов, членом которых является пользователь (inProject !== false)
Параметры пагинации
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
skip |
Int | 0 | Количество записей для пропуска |
take |
Int | 20 | Количество записей для возврата |
Важные примечания
-
Поведение по умолчанию для проектов, в которых нет членов (
inProject: false):- Исключает архивированные проекты, если фильтр
archivedне установлен явно - Исключает шаблонные проекты, если фильтр
isTemplateне установлен явно
- Исключает архивированные проекты, если фильтр
-
Ограничения фильтрации по папкам:
- Работает только при отображении проектов пользователя
- Не может быть использован с
inProject: false - Используйте
folderId: null, чтобы получить проекты, не находящиеся в какой-либо папке
-
Резервное копирование сортировки:
- Сортировка по позиции игнорируется при просмотре проектов, в которых нет членов
- В таких случаях возвращается сортировка по имени
-
Устаревшие параметры:
orderBy,after,before,first,lastустарели- Используйте
sort,skipиtakeвместо этого