Size: a a a

GraphQL — русскоговорящее сообщество

2021 July 25

🏡K

🏡 ILshat Khamitov in GraphQL — русскоговорящее сообщество
Генерю из базы схему призмы и попути круд граф на несте, из схемы графа генерю сдк для ангулар, общие вещи норм выходят, где нужна скорость  сырые запросы в базу и квери с мутациями ручные урезанные, на основе них сдк тож генерит код для фронта
источник

AT

Alexander Tarasenko in GraphQL — русскоговорящее сообщество
Оо звучит интересно.
источник

AT

Alexander Tarasenko in GraphQL — русскоговорящее сообщество
Буду тоже пробовать такой подход, спасибо)
источник

🏡K

🏡 ILshat Khamitov in GraphQL — русскоговорящее сообщество
Тут из базы круд на несте без фронта, базу в этом примере с помощью миграций призмы создаю https://github.com/EndyKaufman/typegraphql-prisma-nestjs-example, а вообще базу создаю через flyway и дальше то что описывал ранее, там версии всего старые уже, пока некогда обновлять, но не суть
источник

AT

Alexander Tarasenko in GraphQL — русскоговорящее сообщество
Спасибо большое)
источник

λ

λoλdog in GraphQL — русскоговорящее сообщество
А ещё права нужно объявлять
источник

AT

Alexander Tarasenko in GraphQL — русскоговорящее сообщество
Права?
источник

λ

λoλdog in GraphQL — русскоговорящее сообщество
Права доступа
источник

λ

λoλdog in GraphQL — русскоговорящее сообщество
Орм наверное никак не описывает что и как тебе доступно
источник

AT

Alexander Tarasenko in GraphQL — русскоговорящее сообщество
Короче решили одну проблему создали ещё 3(
источник

🏡K

🏡 ILshat Khamitov in GraphQL — русскоговорящее сообщество
typegraphql позволяет на сгенерированный круд раскидывать права, можно даже поля порезать вроде как в зависимости от роли, в nestjs интеграции правда такого нет, там я в ручную подобные штуки пишу
источник

λ

λoλdog in GraphQL — русскоговорящее сообщество
ну речь про то, что это ручная работа
источник

🏡K

🏡 ILshat Khamitov in GraphQL — русскоговорящее сообщество
Была идея у меня давно, ну и щас есть, может когда нить попробую
В базе данных в комментариях к полям и таблицам писать название роли, и генератор кода так переделать чтобы они все мапал на поля и таблицы чтобы ацл на уровне приложения это все схватил

(roles:admin,user,manager)
Или
(permissions:can-update-projects)
источник

λ

λoλdog in GraphQL — русскоговорящее сообщество
а если динамическая система прав?
источник

λ

λoλdog in GraphQL — русскоговорящее сообщество
хотя с пермиженами то как раз ок
источник

🏡K

🏡 ILshat Khamitov in GraphQL — русскоговорящее сообщество
Ага
источник

🏡K

🏡 ILshat Khamitov in GraphQL — русскоговорящее сообщество
Можно даже чтобы группы пользователей создавало

(groups:admin,permissions:can-update-projects)
источник

λ

λoλdog in GraphQL — русскоговорящее сообщество
но все равно, это проверка прав на уровне филодов? обьектов? или может при в резолверах? плюс не понятно че делать с обратными ссылками
источник

🏡K

🏡 ILshat Khamitov in GraphQL — русскоговорящее сообщество
Можно создать объекты с названием каждой роли и rpc квери getUserForAdmin с набором полей и в бэке проверять и резать если чел с другой ролью запросил, через квери он вызовет, но бэк ругнется
источник

A

Alex in GraphQL — русскоговорящее сообщество
Просто часто ведь логика бывает сложнее круда. Например на одно действие (мутацию) нужно вносить изменение в несколько таблиц, а попутно ещё и какую-то валидацию делать. И тут автогенерация круда уже не в силах помочь.
источник