Спейсы
Что такое спейс
Спейс — это рабочее пространство команды: место, где по общему шаблону-коллекции создаются и живут проекты. Коллекция отвечает на вопрос «как в нашей отрасли устроены проекты вообще», спейс — «как работает именно эта команда»: свои участники, свои роли, свои поправки к шаблону.
Зачем понадобился отдельный слой. Один и тот же шаблон разные команды используют по-разному: у одной нет отдельного аналитика — его блоки забирает инженер; другая добавляет свой этап согласований; третьей нужен урезанный состав для быстрых проверок идей. Без спейсов пришлось бы либо плодить копии коллекции (и потерять единый эталон), либо править общий шаблон под каждого (и сломать его остальным). Спейс решает это оверлеем: команда переопределяет, скрывает или дополняет элементы коллекции у себя, а сама коллекция остаётся нетронутой. Любую поправку можно снять и вернуться к базовому значению, а команда «сбросить спейс» откатывает всё разом — эксперименты с настройкой ничем не грозят.
Внутри спейса живёт и командная структура: менеджер (спейсмен) управляет пространством, наблюдатель видит без права правки, участникам назначаются специальности — и в проектах сразу видно, кто закрывает какие блоки. Публичный срез есть только у гостевых спейсов — их автоматически порождают публичные коллекции (гостевой доступ); командные и личные спейсы снаружи не видны.
Попробовать за три шага (нужны права администратора организации; организацию для команды подключает администратор платформы, попробовать продукт без неё можно в гостевом режиме).
- Создайте спейс по коллекции в разделе спейсов организации.
- Назначьте спейсмена и добавьте участников со специальностями.
- Настройте пространство под команду — переопределите или скройте лишние элементы шаблона — и пусть команда создаёт первые проекты.
Шаблон, по которому построен спейс, — коллекция; результат работы команды — проекты и их дизайн-документы; роли и права — роли.
Домен: Спейсы
Спейс — это рабочее пространство команды, построенное по коллекции-шаблону. Коллекция задаёт исходные слои, блоки, специальности и связи; спейс кладёт поверх них оверлей — свой набор изменений, не трогая саму коллекцию. По спейсу сотрудники создают проекты.
Оверлей даёт четыре действия над любым элементом: переопределить (изменить значение поверх базового), снять переопределение (вернуться к тому, что в коллекции), удалить в спейсе и вернуть удалённый. Команда «сбросить спейс» откатывает все изменения разом к исходной коллекции. Отдельные …/public-эндпоинты отдают публичный срез гостевого спейса — то, что видит гость; для командных и личных спейсов они возвращают 403.
Спейсом управляет его менеджер (спейсмен); наблюдатель видит, но не меняет; состав задаётся участниками, а специальности назначаются конкретным людям. Сопоставление ролей привязывает кадровые роли к внутренним. Подробнее о ролях — роли, источник истины по правам — матрица RP. Ниже — методы API и экраны домена.
Методы API
| Метод | Эндпоинт | Статус |
|---|---|---|
| Спейсы организации | GET /api/orgs/:orgId/spaces | код |
| Создать спейс | POST /api/orgs/:orgId/spaces | код |
| Список спейсов | GET /api/spaces | done |
| Лента изменений спейса (для агента) | GET /api/spaces/:id/activity | done |
| Переопределить блок | POST /api/spaces/:id/blocks/:blockId | код |
| Снять переопределение блока | POST /api/spaces/:id/blocks/:blockId/clear-override | done |
| Вернуть блок | POST /api/spaces/:id/blocks/:blockId/restore | done |
| Публичные блоки спейса | GET /api/spaces/:id/blocks/public | код |
| Связи спейса | GET /api/spaces/:id/edges | done |
| Добавить связь | POST /api/spaces/:id/edges | done |
| Удалить связь | DELETE /api/spaces/:id/edges/:source/:target | done |
| Публичные связи спейса | GET /api/spaces/:id/edges/public | код |
| Переопределить слой | POST /api/spaces/:id/layers/:layerId | код |
| Изменить слой спейса | PUT /api/spaces/:id/layers/:layerId | код |
| Снять переопределение слоя | POST /api/spaces/:id/layers/:layerId/clear-override | done |
| Вернуть слой | POST /api/spaces/:id/layers/:layerId/restore | done |
| Публичные слои спейса | GET /api/spaces/:id/layers/public | код |
| Удалить участника | DELETE /api/spaces/:id/members/:userId | код |
| Сбросить спейс к исходному | POST /api/spaces/:id/reset | done |
| Восстановить спейс | POST /api/spaces/:id/restore | код |
| Задать сопоставление ролей | PUT /api/spaces/:id/role-mapping | код |
| Переопределить специальность | POST /api/spaces/:id/specialties/:specId | код |
| Снять переопределение специальности | POST /api/spaces/:id/specialties/:specId/clear-override | done |
| Вернуть специальность | POST /api/spaces/:id/specialties/:specId/restore | done |
| Публичные специальности спейса | GET /api/spaces/:id/specialties/public | код |
| Назначить специальность | POST /api/spaces/:id/specialty-assignments | код |
| Снять назначение специальности | DELETE /api/spaces/:id/specialty-assignments/:specId/:userId | код |
| Удалить спейс (в корзину) | DELETE /api/spaces/:spaceId | done |
| Получить спейс | GET /api/spaces/:spaceId | done |
| Обновить спейс | PUT /api/spaces/:spaceId | done |
| Блоки спейса | GET /api/spaces/:spaceId/blocks | done |
| Удалить блок спейса | DELETE /api/spaces/:spaceId/blocks/:id | done |
| Изменить блок спейса | PUT /api/spaces/:spaceId/blocks/:id | done |
| Слои спейса | GET /api/spaces/:spaceId/layers | done |
| Удалить слой спейса | DELETE /api/spaces/:spaceId/layers/:id | done |
| Участники спейса | GET /api/spaces/:spaceId/members | done |
| Добавить участника | POST /api/spaces/:spaceId/members | done |
| Изменить участника | PUT /api/spaces/:spaceId/members/:userId | done |
| Сопоставление ролей спейса | GET /api/spaces/:spaceId/role-mapping | done |
| Удалить сопоставление роли | DELETE /api/spaces/:spaceId/role-mapping/:source | done |
| Назначить менеджера спейса | PUT /api/spaces/:spaceId/spaceman | done |
| Специальности спейса | GET /api/spaces/:spaceId/specialties | done |
| Удалить специальность спейса | DELETE /api/spaces/:spaceId/specialties/:id | done |
| Изменить специальность спейса | PUT /api/spaces/:spaceId/specialties/:id | done |
| Назначения специальностей | GET /api/spaces/:spaceId/specialty-assignments | done |
| Наблюдатели спейса | GET /api/spaces/:spaceId/supervisors | done |
| Добавить наблюдателя | POST /api/spaces/:spaceId/supervisors | done |
| Удалить наблюдателя | DELETE /api/spaces/:spaceId/supervisors/:userId | done |
| Удалённые спейсы | GET /api/spaces/deleted | код |