ecoportal-api-graphql 1.3.16 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +746 -6
  3. data/LICENSE +21 -21
  4. data/README.md +24 -24
  5. data/lib/ecoportal/api/common/graphql/auth_service.rb +115 -115
  6. data/lib/ecoportal/api/common/graphql/class_helpers.rb +46 -46
  7. data/lib/ecoportal/api/common/graphql/client.rb +69 -69
  8. data/lib/ecoportal/api/common/graphql/hash_helpers.rb +105 -105
  9. data/lib/ecoportal/api/common/graphql/http_client.rb +85 -2
  10. data/lib/ecoportal/api/common/graphql/model/as_input.rb +54 -54
  11. data/lib/ecoportal/api/common/graphql/model/diffable/classic_diff_service.rb +49 -49
  12. data/lib/ecoportal/api/common/graphql/model/diffable/diff_service.rb +188 -188
  13. data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff.rb +55 -55
  14. data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff_nesting.rb +295 -295
  15. data/lib/ecoportal/api/common/graphql/model/diffable/leaf_diff_service.rb +97 -0
  16. data/lib/ecoportal/api/common/graphql/model/diffable.rb +1 -0
  17. data/lib/ecoportal/api/common/graphql/model.rb +17 -17
  18. data/lib/ecoportal/api/common/graphql/patches.rb +1 -1
  19. data/lib/ecoportal/api/common/graphql/query_integration.rb +45 -45
  20. data/lib/ecoportal/api/common/graphql.rb +16 -16
  21. data/lib/ecoportal/api/common.graphql.rb +8 -8
  22. data/lib/ecoportal/api/graphql/base/action.rb +1 -1
  23. data/lib/ecoportal/api/graphql/base/action_category.rb +15 -15
  24. data/lib/ecoportal/api/graphql/base/action_event.rb +23 -0
  25. data/lib/ecoportal/api/graphql/base/action_event_page.rb +16 -0
  26. data/lib/ecoportal/api/graphql/base/activity.rb +38 -0
  27. data/lib/ecoportal/api/graphql/base/activity_log.rb +38 -0
  28. data/lib/ecoportal/api/graphql/base/ai_summary_version.rb +13 -8
  29. data/lib/ecoportal/api/graphql/base/auth_log.rb +24 -0
  30. data/lib/ecoportal/api/graphql/base/authorization_result.rb +20 -0
  31. data/lib/ecoportal/api/graphql/base/contractor_entity/member_changes.rb +17 -5
  32. data/lib/ecoportal/api/graphql/base/contractor_entity.rb +24 -24
  33. data/lib/ecoportal/api/graphql/base/date_time.rb +12 -12
  34. data/lib/ecoportal/api/graphql/base/delta_result.rb +16 -16
  35. data/lib/ecoportal/api/graphql/base/field.rb +12 -12
  36. data/lib/ecoportal/api/graphql/base/file_attachment.rb +15 -15
  37. data/lib/ecoportal/api/graphql/base/file_container.rb +12 -4
  38. data/lib/ecoportal/api/graphql/base/location_classification_type.rb +2 -0
  39. data/lib/ecoportal/api/graphql/base/location_node.rb +14 -14
  40. data/lib/ecoportal/api/graphql/base/location_structure/draft/structure.rb +37 -37
  41. data/lib/ecoportal/api/graphql/base/location_structure/draft.rb +93 -93
  42. data/lib/ecoportal/api/graphql/base/location_structure.rb +3 -0
  43. data/lib/ecoportal/api/graphql/base/minimal_dashboard.rb +25 -0
  44. data/lib/ecoportal/api/graphql/base/organization.rb +2 -0
  45. data/lib/ecoportal/api/graphql/base/page/data_field/actions_list.rb +9 -9
  46. data/lib/ecoportal/api/graphql/base/page/data_field/ai_summary.rb +18 -18
  47. data/lib/ecoportal/api/graphql/base/page/data_field/checklist.rb +29 -29
  48. data/lib/ecoportal/api/graphql/base/page/data_field/contractor_entities.rb +26 -3
  49. data/lib/ecoportal/api/graphql/base/page/data_field/cross_reference.rb +1 -1
  50. data/lib/ecoportal/api/graphql/base/page/data_field/date_field.rb +23 -23
  51. data/lib/ecoportal/api/graphql/base/page/data_field/file_field.rb +47 -8
  52. data/lib/ecoportal/api/graphql/base/page/data_field/geo.rb +24 -24
  53. data/lib/ecoportal/api/graphql/base/page/data_field/image_gallery.rb +6 -3
  54. data/lib/ecoportal/api/graphql/base/page/data_field/law.rb +8 -8
  55. data/lib/ecoportal/api/graphql/base/page/data_field/mailbox.rb +9 -9
  56. data/lib/ecoportal/api/graphql/base/page/data_field/people.rb +50 -12
  57. data/lib/ecoportal/api/graphql/base/page/data_field/plain_text.rb +17 -17
  58. data/lib/ecoportal/api/graphql/base/page/data_field/rich_text.rb +26 -26
  59. data/lib/ecoportal/api/graphql/base/page/data_field/signature.rb +9 -9
  60. data/lib/ecoportal/api/graphql/base/page/data_field/smart_fill.rb +17 -17
  61. data/lib/ecoportal/api/graphql/base/page/data_field/table.rb +9 -9
  62. data/lib/ecoportal/api/graphql/base/page/data_field/tag_field.rb +21 -21
  63. data/lib/ecoportal/api/graphql/base/page/data_field.rb +12 -18
  64. data/lib/ecoportal/api/graphql/base/page/phased/stage.rb +51 -0
  65. data/lib/ecoportal/api/graphql/base/page/phased.rb +15 -15
  66. data/lib/ecoportal/api/graphql/base/page/section.rb +48 -48
  67. data/lib/ecoportal/api/graphql/base/page_info.rb +12 -12
  68. data/lib/ecoportal/api/graphql/base/pages_workflow/operation_interface.rb +39 -39
  69. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/assign_to.rb +27 -27
  70. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/send_notification.rb +30 -30
  71. data/lib/ecoportal/api/graphql/base/pages_workflow/recipient_config.rb +34 -34
  72. data/lib/ecoportal/api/graphql/base/pages_workflow.rb +35 -35
  73. data/lib/ecoportal/api/graphql/base/permissions.rb +15 -0
  74. data/lib/ecoportal/api/graphql/base/person_member.rb +22 -22
  75. data/lib/ecoportal/api/graphql/base/person_member_changelog.rb +23 -0
  76. data/lib/ecoportal/api/graphql/base/preset_view.rb +136 -1
  77. data/lib/ecoportal/api/graphql/base/preview_page.rb +23 -23
  78. data/lib/ecoportal/api/graphql/base/register.rb +6 -1
  79. data/lib/ecoportal/api/graphql/base/resource.rb +13 -13
  80. data/lib/ecoportal/api/graphql/base/template/change_log_entry.rb +118 -0
  81. data/lib/ecoportal/api/graphql/base/template.rb +2 -0
  82. data/lib/ecoportal/api/graphql/base.rb +9 -0
  83. data/lib/ecoportal/api/graphql/builder/action.rb +41 -41
  84. data/lib/ecoportal/api/graphql/builder/contractor_entity.rb +10 -0
  85. data/lib/ecoportal/api/graphql/builder/location_structure/draft.rb +64 -64
  86. data/lib/ecoportal/api/graphql/builder/location_structure.rb +40 -40
  87. data/lib/ecoportal/api/graphql/builder/page.rb +0 -16
  88. data/lib/ecoportal/api/graphql/builder/register/preset_view.rb +84 -84
  89. data/lib/ecoportal/api/graphql/builder/register.rb +49 -49
  90. data/lib/ecoportal/api/graphql/builder/template.rb +46 -0
  91. data/lib/ecoportal/api/graphql/builder/template_builder.rb +21 -2
  92. data/lib/ecoportal/api/graphql/compat/page_reference.rb +23 -23
  93. data/lib/ecoportal/api/graphql/compat/pages.rb +7 -2
  94. data/lib/ecoportal/api/graphql/compat/registers.rb +84 -84
  95. data/lib/ecoportal/api/graphql/compat/response.rb +14 -0
  96. data/lib/ecoportal/api/graphql/compat/search_results.rb +33 -33
  97. data/lib/ecoportal/api/graphql/compat.rb +17 -17
  98. data/lib/ecoportal/api/graphql/concerns/data_field_access.rb +71 -71
  99. data/lib/ecoportal/api/graphql/concerns/fragment_definitions.rb +68 -68
  100. data/lib/ecoportal/api/graphql/concerns/snake_camel_access.rb +60 -60
  101. data/lib/ecoportal/api/graphql/concerns/threadable.rb +58 -0
  102. data/lib/ecoportal/api/graphql/concerns.rb +1 -0
  103. data/lib/ecoportal/api/graphql/connection/action.rb +1 -1
  104. data/lib/ecoportal/api/graphql/connection/action_category.rb +1 -1
  105. data/lib/ecoportal/api/graphql/connection/activity.rb +11 -0
  106. data/lib/ecoportal/api/graphql/connection/activity_log.rb +11 -0
  107. data/lib/ecoportal/api/graphql/connection/auth_log.rb +11 -0
  108. data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +1 -1
  109. data/lib/ecoportal/api/graphql/connection/minimal_dashboard.rb +11 -0
  110. data/lib/ecoportal/api/graphql/connection/page.rb +1 -1
  111. data/lib/ecoportal/api/graphql/connection/pages_workflow_command.rb +1 -1
  112. data/lib/ecoportal/api/graphql/connection/person_member.rb +1 -1
  113. data/lib/ecoportal/api/graphql/connection/person_member_changelog.rb +11 -0
  114. data/lib/ecoportal/api/graphql/connection/preset_view.rb +11 -11
  115. data/lib/ecoportal/api/graphql/connection/preview_page.rb +1 -1
  116. data/lib/ecoportal/api/graphql/connection/template_change_log.rb +19 -0
  117. data/lib/ecoportal/api/graphql/connection.rb +6 -0
  118. data/lib/ecoportal/api/graphql/diff/change.rb +7 -2
  119. data/lib/ecoportal/api/graphql/diff/command_synthesizer.rb +19 -1
  120. data/lib/ecoportal/api/graphql/diff/pairing/signals.rb +21 -1
  121. data/lib/ecoportal/api/graphql/diff/version_diff.rb +13 -6
  122. data/lib/ecoportal/api/graphql/error/locations_error/fetch_nested.rb +51 -51
  123. data/lib/ecoportal/api/graphql/error/locations_error.rb +28 -28
  124. data/lib/ecoportal/api/graphql/error/locations_validation_error.rb +20 -20
  125. data/lib/ecoportal/api/graphql/error/validation_errors.rb +28 -28
  126. data/lib/ecoportal/api/graphql/error.rb +12 -12
  127. data/lib/ecoportal/api/graphql/file_upload/client.rb +199 -140
  128. data/lib/ecoportal/api/graphql/file_upload.rb +10 -10
  129. data/lib/ecoportal/api/graphql/fragment/action.rb +65 -65
  130. data/lib/ecoportal/api/graphql/fragment/action_category.rb +17 -17
  131. data/lib/ecoportal/api/graphql/fragment/activity.rb +84 -0
  132. data/lib/ecoportal/api/graphql/fragment/activity_log.rb +75 -0
  133. data/lib/ecoportal/api/graphql/fragment/auth_log.rb +29 -0
  134. data/lib/ecoportal/api/graphql/fragment/authorization_result.rb +14 -0
  135. data/lib/ecoportal/api/graphql/fragment/contractor_entity.rb +20 -20
  136. data/lib/ecoportal/api/graphql/fragment/location_node.rb +1 -0
  137. data/lib/ecoportal/api/graphql/fragment/locations_error.rb +19 -19
  138. data/lib/ecoportal/api/graphql/fragment/minimal_dashboard.rb +31 -0
  139. data/lib/ecoportal/api/graphql/fragment/page.rb +1 -0
  140. data/lib/ecoportal/api/graphql/fragment/pages/common_page_union.rb +23 -0
  141. data/lib/ecoportal/api/graphql/fragment/pages.rb +15 -15
  142. data/lib/ecoportal/api/graphql/fragment/pagination.rb +17 -17
  143. data/lib/ecoportal/api/graphql/fragment/permissions.rb +98 -0
  144. data/lib/ecoportal/api/graphql/fragment/person_member_changelog.rb +33 -0
  145. data/lib/ecoportal/api/graphql/fragment/template_change_log.rb +102 -0
  146. data/lib/ecoportal/api/graphql/fragment.rb +8 -0
  147. data/lib/ecoportal/api/graphql/helpers/locations_tree.rb +41 -41
  148. data/lib/ecoportal/api/graphql/helpers.rb +10 -10
  149. data/lib/ecoportal/api/graphql/input/action/archive.rb +14 -14
  150. data/lib/ecoportal/api/graphql/input/action/create.rb +13 -13
  151. data/lib/ecoportal/api/graphql/input/action/update.rb +12 -0
  152. data/lib/ecoportal/api/graphql/input/action.rb +14 -14
  153. data/lib/ecoportal/api/graphql/input/contractor_entity/create.rb +14 -14
  154. data/lib/ecoportal/api/graphql/input/contractor_entity/destroy.rb +13 -13
  155. data/lib/ecoportal/api/graphql/input/contractor_entity/manager_settings.rb +20 -0
  156. data/lib/ecoportal/api/graphql/input/contractor_entity/update.rb +6 -27
  157. data/lib/ecoportal/api/graphql/input/contractor_entity.rb +1 -0
  158. data/lib/ecoportal/api/graphql/input/date_range.rb +16 -0
  159. data/lib/ecoportal/api/graphql/input/delta_input.rb +16 -16
  160. data/lib/ecoportal/api/graphql/input/id_diff.rb +11 -11
  161. data/lib/ecoportal/api/graphql/input/location_structure/apply_commands.rb +2 -2
  162. data/lib/ecoportal/api/graphql/input/location_structure/archive_command.rb +13 -13
  163. data/lib/ecoportal/api/graphql/input/location_structure/delete_command.rb +13 -13
  164. data/lib/ecoportal/api/graphql/input/location_structure/draft/add_commands.rb +2 -2
  165. data/lib/ecoportal/api/graphql/input/location_structure/draft/create.rb +15 -15
  166. data/lib/ecoportal/api/graphql/input/location_structure/draft/delete.rb +15 -15
  167. data/lib/ecoportal/api/graphql/input/location_structure/draft/drop_bad_commands.rb +16 -16
  168. data/lib/ecoportal/api/graphql/input/location_structure/draft/publish.rb +16 -16
  169. data/lib/ecoportal/api/graphql/input/location_structure/draft.rb +19 -19
  170. data/lib/ecoportal/api/graphql/input/location_structure/insert_command.rb +21 -13
  171. data/lib/ecoportal/api/graphql/input/location_structure/move_command.rb +14 -14
  172. data/lib/ecoportal/api/graphql/input/location_structure/reorder_command.rb +13 -13
  173. data/lib/ecoportal/api/graphql/input/location_structure/unarchive_command.rb +13 -13
  174. data/lib/ecoportal/api/graphql/input/location_structure/update_command.rb +6 -2
  175. data/lib/ecoportal/api/graphql/input/location_structure.rb +20 -20
  176. data/lib/ecoportal/api/graphql/input/page/archive.rb +14 -14
  177. data/lib/ecoportal/api/graphql/input/page/build_from_template.rb +13 -13
  178. data/lib/ecoportal/api/graphql/input/page/create_draft.rb +13 -13
  179. data/lib/ecoportal/api/graphql/input/page/create_from_template.rb +18 -18
  180. data/lib/ecoportal/api/graphql/input/page/delete_draft.rb +13 -13
  181. data/lib/ecoportal/api/graphql/input/page/publish_draft.rb +13 -13
  182. data/lib/ecoportal/api/graphql/input/page/review_task.rb +27 -14
  183. data/lib/ecoportal/api/graphql/input/page/unarchive.rb +14 -14
  184. data/lib/ecoportal/api/graphql/input/page.rb +26 -26
  185. data/lib/ecoportal/api/graphql/input/preset_view/create.rb +18 -18
  186. data/lib/ecoportal/api/graphql/input/preset_view/permission.rb +16 -16
  187. data/lib/ecoportal/api/graphql/input/preset_view/update.rb +17 -2
  188. data/lib/ecoportal/api/graphql/input/preset_view.rb +14 -14
  189. data/lib/ecoportal/api/graphql/input/register/create.rb +18 -18
  190. data/lib/ecoportal/api/graphql/input/register/update.rb +15 -15
  191. data/lib/ecoportal/api/graphql/input/register.rb +13 -13
  192. data/lib/ecoportal/api/graphql/input/search.rb +13 -13
  193. data/lib/ecoportal/api/graphql/input/search_conf/ai_generator.rb +234 -234
  194. data/lib/ecoportal/api/graphql/input/search_filter.rb +12 -12
  195. data/lib/ecoportal/api/graphql/input/search_sorter.rb +11 -11
  196. data/lib/ecoportal/api/graphql/input/workflow_command/add_action_tag.rb +18 -18
  197. data/lib/ecoportal/api/graphql/input/workflow_command/add_binding.rb +18 -18
  198. data/lib/ecoportal/api/graphql/input/workflow_command/add_checklist_field_item.rb +19 -0
  199. data/lib/ecoportal/api/graphql/input/workflow_command/add_comment_tagging_user_group.rb +18 -18
  200. data/lib/ecoportal/api/graphql/input/workflow_command/add_default_direct_strategy_user.rb +18 -18
  201. data/lib/ecoportal/api/graphql/input/workflow_command/add_default_strategy.rb +18 -18
  202. data/lib/ecoportal/api/graphql/input/workflow_command/add_direct_strategy_user.rb +18 -18
  203. data/lib/ecoportal/api/graphql/input/workflow_command/add_field.rb +10 -9
  204. data/lib/ecoportal/api/graphql/input/workflow_command/add_force.rb +18 -18
  205. data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_field_config.rb +23 -23
  206. data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_helper.rb +18 -18
  207. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation.rb +18 -18
  208. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_direct_strategy_user.rb +18 -18
  209. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_strategy.rb +18 -18
  210. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_action_type.rb +18 -18
  211. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_filter.rb +18 -18
  212. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_people_field.rb +18 -18
  213. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_task_config.rb +18 -18
  214. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_user.rb +18 -18
  215. data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback.rb +23 -23
  216. data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback_action.rb +18 -18
  217. data/lib/ecoportal/api/graphql/input/workflow_command/add_section.rb +18 -18
  218. data/lib/ecoportal/api/graphql/input/workflow_command/add_select_field_option.rb +25 -19
  219. data/lib/ecoportal/api/graphql/input/workflow_command/add_smart_fill_config.rb +23 -0
  220. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage.rb +3 -2
  221. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_section.rb +18 -18
  222. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_tag.rb +18 -18
  223. data/lib/ecoportal/api/graphql/input/workflow_command/add_strategy.rb +18 -18
  224. data/lib/ecoportal/api/graphql/input/workflow_command/add_task.rb +18 -18
  225. data/lib/ecoportal/api/graphql/input/workflow_command/add_task_assignment_user_group.rb +18 -18
  226. data/lib/ecoportal/api/graphql/input/workflow_command/add_viewable_field.rb +45 -0
  227. data/lib/ecoportal/api/graphql/input/workflow_command/add_workflow_callback.rb +18 -18
  228. data/lib/ecoportal/api/graphql/input/workflow_command/archive_public_config.rb +19 -0
  229. data/lib/ecoportal/api/graphql/input/workflow_command/collapse_section.rb +18 -18
  230. data/lib/ecoportal/api/graphql/input/workflow_command/create_public_config.rb +19 -0
  231. data/lib/ecoportal/api/graphql/input/workflow_command/edit_binding.rb +18 -18
  232. data/lib/ecoportal/api/graphql/input/workflow_command/edit_checklist_field_item.rb +19 -0
  233. data/lib/ecoportal/api/graphql/input/workflow_command/edit_creator_permissions.rb +18 -18
  234. data/lib/ecoportal/api/graphql/input/workflow_command/edit_default_strategy.rb +18 -18
  235. data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +17 -2
  236. data/lib/ecoportal/api/graphql/input/workflow_command/edit_force.rb +21 -18
  237. data/lib/ecoportal/api/graphql/input/workflow_command/edit_gauge_field_stop.rb +19 -19
  238. data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_field_config.rb +19 -19
  239. data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_helper.rb +18 -18
  240. data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation.rb +18 -18
  241. data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation_strategy.rb +18 -18
  242. data/lib/ecoportal/api/graphql/input/workflow_command/edit_public_config.rb +19 -0
  243. data/lib/ecoportal/api/graphql/input/workflow_command/edit_reminder.rb +18 -18
  244. data/lib/ecoportal/api/graphql/input/workflow_command/edit_required_sign_offs.rb +18 -18
  245. data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_comment_tagging.rb +18 -18
  246. data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_task_assignment.rb +18 -18
  247. data/lib/ecoportal/api/graphql/input/workflow_command/edit_scheduled_callback.rb +22 -22
  248. data/lib/ecoportal/api/graphql/input/workflow_command/edit_section_header.rb +18 -18
  249. data/lib/ecoportal/api/graphql/input/workflow_command/edit_select_field_option.rb +23 -19
  250. data/lib/ecoportal/api/graphql/input/workflow_command/edit_smart_fill_config.rb +21 -0
  251. data/lib/ecoportal/api/graphql/input/workflow_command/edit_stage.rb +18 -18
  252. data/lib/ecoportal/api/graphql/input/workflow_command/edit_strategy.rb +18 -18
  253. data/lib/ecoportal/api/graphql/input/workflow_command/edit_task_due.rb +18 -18
  254. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_advanced_settings.rb +19 -0
  255. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_basic_settings.rb +32 -0
  256. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_container_uid.rb +45 -0
  257. data/lib/ecoportal/api/graphql/input/workflow_command/{edit_page_creator_permissions.rb → edit_template_creator_permissions.rb} +3 -2
  258. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_descriptions.rb +19 -0
  259. data/lib/ecoportal/api/graphql/input/workflow_command/edit_trigger.rb +18 -18
  260. data/lib/ecoportal/api/graphql/input/workflow_command/expand_section.rb +18 -18
  261. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/action_list.rb +31 -0
  262. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/contractor_entities.rb +28 -24
  263. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +9 -1
  264. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/date.rb +15 -2
  265. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/file.rb +21 -0
  266. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/gauge.rb +20 -20
  267. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/image_gallery.rb +3 -2
  268. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/location_field.rb +24 -24
  269. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/people.rb +27 -3
  270. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +9 -2
  271. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/rich_text.rb +3 -2
  272. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb +3 -2
  273. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/signature.rb +20 -20
  274. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/table.rb +25 -25
  275. data/lib/ecoportal/api/graphql/input/workflow_command/manage_copy_page_configuration.rb +47 -0
  276. data/lib/ecoportal/api/graphql/input/workflow_command/move_field.rb +3 -2
  277. data/lib/ecoportal/api/graphql/input/workflow_command/move_stage.rb +18 -18
  278. data/lib/ecoportal/api/graphql/input/workflow_command/move_viewable_field.rb +33 -0
  279. data/lib/ecoportal/api/graphql/input/workflow_command/remove_action_tag.rb +18 -18
  280. data/lib/ecoportal/api/graphql/input/workflow_command/remove_binding.rb +18 -18
  281. data/lib/ecoportal/api/graphql/input/workflow_command/remove_callback.rb +18 -18
  282. data/lib/ecoportal/api/graphql/input/workflow_command/remove_checklist_field_item.rb +19 -0
  283. data/lib/ecoportal/api/graphql/input/workflow_command/remove_comment_tagging_user_group.rb +18 -18
  284. data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_direct_strategy_user.rb +18 -18
  285. data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_strategy.rb +18 -18
  286. data/lib/ecoportal/api/graphql/input/workflow_command/remove_direct_strategy_user.rb +18 -18
  287. data/lib/ecoportal/api/graphql/input/workflow_command/remove_field.rb +18 -18
  288. data/lib/ecoportal/api/graphql/input/workflow_command/remove_force.rb +18 -18
  289. data/lib/ecoportal/api/graphql/input/workflow_command/remove_linked_helper.rb +18 -18
  290. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation.rb +18 -18
  291. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_direct_strategy_user.rb +18 -18
  292. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_strategy.rb +18 -18
  293. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_action_type.rb +18 -18
  294. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_filter.rb +18 -18
  295. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_people_field.rb +18 -18
  296. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_task_config.rb +18 -18
  297. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_user.rb +18 -18
  298. data/lib/ecoportal/api/graphql/input/workflow_command/remove_scheduled_callback.rb +18 -18
  299. data/lib/ecoportal/api/graphql/input/workflow_command/remove_section.rb +18 -18
  300. data/lib/ecoportal/api/graphql/input/workflow_command/remove_smart_fill_config.rb +19 -0
  301. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage.rb +18 -18
  302. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_section.rb +18 -18
  303. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_tag.rb +18 -18
  304. data/lib/ecoportal/api/graphql/input/workflow_command/remove_strategy.rb +18 -18
  305. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task.rb +18 -18
  306. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_assignment_user_group.rb +18 -18
  307. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_due.rb +18 -18
  308. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_priority_level.rb +18 -18
  309. data/lib/ecoportal/api/graphql/input/workflow_command/remove_viewable_field.rb +21 -0
  310. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_forces.rb +3 -2
  311. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_section.rb +3 -2
  312. data/lib/ecoportal/api/graphql/input/workflow_command.rb +46 -5
  313. data/lib/ecoportal/api/graphql/input.rb +1 -0
  314. data/lib/ecoportal/api/graphql/interface/base_page.rb +50 -3
  315. data/lib/ecoportal/api/graphql/interface/location_structure/command.rb +2 -1
  316. data/lib/ecoportal/api/graphql/interface/location_structure/node.rb +43 -43
  317. data/lib/ecoportal/api/graphql/interface/location_structure.rb +14 -14
  318. data/lib/ecoportal/api/graphql/interface.rb +11 -11
  319. data/lib/ecoportal/api/graphql/logic/base_model.rb +15 -15
  320. data/lib/ecoportal/api/graphql/logic/base_query.rb +260 -193
  321. data/lib/ecoportal/api/graphql/logic/connection.rb +17 -0
  322. data/lib/ecoportal/api/graphql/logic/input.rb +127 -0
  323. data/lib/ecoportal/api/graphql/logic/mutation.rb +59 -59
  324. data/lib/ecoportal/api/graphql/logic/payload.rb +42 -42
  325. data/lib/ecoportal/api/graphql/logic/query.rb +23 -23
  326. data/lib/ecoportal/api/graphql/logic/query_array.rb +30 -30
  327. data/lib/ecoportal/api/graphql/logic/query_connection.rb +48 -48
  328. data/lib/ecoportal/api/graphql/logic.rb +18 -18
  329. data/lib/ecoportal/api/graphql/model/account.rb +15 -15
  330. data/lib/ecoportal/api/graphql/model/action.rb +22 -22
  331. data/lib/ecoportal/api/graphql/model/action_event.rb +14 -0
  332. data/lib/ecoportal/api/graphql/model/action_event_page.rb +10 -0
  333. data/lib/ecoportal/api/graphql/model/activity.rb +14 -0
  334. data/lib/ecoportal/api/graphql/model/activity_log.rb +31 -0
  335. data/lib/ecoportal/api/graphql/model/ai_summary_version.rb +10 -10
  336. data/lib/ecoportal/api/graphql/model/auth_log.rb +11 -0
  337. data/lib/ecoportal/api/graphql/model/authorization_result.rb +12 -0
  338. data/lib/ecoportal/api/graphql/model/contractor_entity.rb +12 -12
  339. data/lib/ecoportal/api/graphql/model/field.rb +10 -10
  340. data/lib/ecoportal/api/graphql/model/file_attachment.rb +10 -10
  341. data/lib/ecoportal/api/graphql/model/file_container.rb +11 -11
  342. data/lib/ecoportal/api/graphql/model/location_node.rb +14 -14
  343. data/lib/ecoportal/api/graphql/model/location_structure/draft/structure.rb +15 -15
  344. data/lib/ecoportal/api/graphql/model/location_structure/draft.rb +15 -15
  345. data/lib/ecoportal/api/graphql/model/location_structure.rb +16 -16
  346. data/lib/ecoportal/api/graphql/model/minimal_dashboard.rb +14 -0
  347. data/lib/ecoportal/api/graphql/model/organization.rb +36 -0
  348. data/lib/ecoportal/api/graphql/model/page/basic.rb +14 -14
  349. data/lib/ecoportal/api/graphql/model/page/data_field.rb +12 -12
  350. data/lib/ecoportal/api/graphql/model/page/phased/stage.rb +14 -14
  351. data/lib/ecoportal/api/graphql/model/page/phased.rb +17 -0
  352. data/lib/ecoportal/api/graphql/model/page/section.rb +12 -12
  353. data/lib/ecoportal/api/graphql/model/page_union.rb +21 -21
  354. data/lib/ecoportal/api/graphql/model/pages_workflow.rb +20 -20
  355. data/lib/ecoportal/api/graphql/model/permissions.rb +179 -0
  356. data/lib/ecoportal/api/graphql/model/person_member.rb +7 -0
  357. data/lib/ecoportal/api/graphql/model/person_member_changelog.rb +15 -0
  358. data/lib/ecoportal/api/graphql/model/preset_view.rb +10 -10
  359. data/lib/ecoportal/api/graphql/model/preview_page.rb +10 -10
  360. data/lib/ecoportal/api/graphql/model/register.rb +10 -10
  361. data/lib/ecoportal/api/graphql/model/resource.rb +13 -13
  362. data/lib/ecoportal/api/graphql/model/template/change_log_entry.rb +19 -0
  363. data/lib/ecoportal/api/graphql/model/template.rb +4 -1
  364. data/lib/ecoportal/api/graphql/model/user.rb +14 -14
  365. data/lib/ecoportal/api/graphql/model.rb +9 -0
  366. data/lib/ecoportal/api/graphql/mutation/action/archive.rb +41 -41
  367. data/lib/ecoportal/api/graphql/mutation/action/create.rb +40 -40
  368. data/lib/ecoportal/api/graphql/mutation/action/update.rb +40 -40
  369. data/lib/ecoportal/api/graphql/mutation/action.rb +14 -14
  370. data/lib/ecoportal/api/graphql/mutation/ai_summary/generate.rb +21 -11
  371. data/lib/ecoportal/api/graphql/mutation/ai_summary/submit_feedback.rb +26 -11
  372. data/lib/ecoportal/api/graphql/mutation/ai_summary.rb +13 -13
  373. data/lib/ecoportal/api/graphql/mutation/contractor_entity/create.rb +40 -40
  374. data/lib/ecoportal/api/graphql/mutation/contractor_entity/destroy.rb +40 -40
  375. data/lib/ecoportal/api/graphql/mutation/contractor_entity/update.rb +40 -40
  376. data/lib/ecoportal/api/graphql/mutation/contractor_entity/update_manager_settings.rb +37 -0
  377. data/lib/ecoportal/api/graphql/mutation/contractor_entity.rb +1 -0
  378. data/lib/ecoportal/api/graphql/mutation/file_container/upload.rb +78 -0
  379. data/lib/ecoportal/api/graphql/mutation/file_container.rb +15 -0
  380. data/lib/ecoportal/api/graphql/mutation/location_structure/apply_commands.rb +54 -54
  381. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/add_commands.rb +55 -55
  382. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/create.rb +54 -54
  383. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/delete.rb +43 -43
  384. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/drop_bad_commands.rb +56 -56
  385. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/publish.rb +66 -66
  386. data/lib/ecoportal/api/graphql/mutation/location_structure/draft.rb +18 -18
  387. data/lib/ecoportal/api/graphql/mutation/location_structure.rb +13 -13
  388. data/lib/ecoportal/api/graphql/mutation/page/approve_review_task.rb +1 -1
  389. data/lib/ecoportal/api/graphql/mutation/page/archive.rb +40 -40
  390. data/lib/ecoportal/api/graphql/mutation/page/batch_update_review_task.rb +1 -1
  391. data/lib/ecoportal/api/graphql/mutation/page/build_from_template.rb +50 -50
  392. data/lib/ecoportal/api/graphql/mutation/page/create_draft.rb +1 -1
  393. data/lib/ecoportal/api/graphql/mutation/page/create_from_template.rb +43 -43
  394. data/lib/ecoportal/api/graphql/mutation/page/delete_draft.rb +1 -1
  395. data/lib/ecoportal/api/graphql/mutation/page/publish_draft.rb +1 -1
  396. data/lib/ecoportal/api/graphql/mutation/page/reject_review_task.rb +1 -1
  397. data/lib/ecoportal/api/graphql/mutation/page/restart_review_task.rb +1 -1
  398. data/lib/ecoportal/api/graphql/mutation/page/unarchive.rb +40 -40
  399. data/lib/ecoportal/api/graphql/mutation/page/undo_review_task.rb +1 -1
  400. data/lib/ecoportal/api/graphql/mutation/page/update.rb +40 -40
  401. data/lib/ecoportal/api/graphql/mutation/page.rb +28 -28
  402. data/lib/ecoportal/api/graphql/mutation/preset_view/create.rb +35 -35
  403. data/lib/ecoportal/api/graphql/mutation/preset_view/destroy.rb +1 -1
  404. data/lib/ecoportal/api/graphql/mutation/preset_view/permission.rb +37 -37
  405. data/lib/ecoportal/api/graphql/mutation/preset_view/update.rb +35 -35
  406. data/lib/ecoportal/api/graphql/mutation/preset_view.rb +15 -15
  407. data/lib/ecoportal/api/graphql/mutation/register/create.rb +35 -35
  408. data/lib/ecoportal/api/graphql/mutation/register/destroy.rb +1 -1
  409. data/lib/ecoportal/api/graphql/mutation/register/update.rb +35 -35
  410. data/lib/ecoportal/api/graphql/mutation/register.rb +14 -14
  411. data/lib/ecoportal/api/graphql/mutation/template/update_related_page.rb +79 -0
  412. data/lib/ecoportal/api/graphql/mutation/template.rb +1 -0
  413. data/lib/ecoportal/api/graphql/mutation.rb +1 -1
  414. data/lib/ecoportal/api/graphql/payload/action/archive.rb +13 -13
  415. data/lib/ecoportal/api/graphql/payload/action/create.rb +13 -13
  416. data/lib/ecoportal/api/graphql/payload/action/update.rb +13 -13
  417. data/lib/ecoportal/api/graphql/payload/action.rb +14 -14
  418. data/lib/ecoportal/api/graphql/payload/ai_summary_generate.rb +12 -12
  419. data/lib/ecoportal/api/graphql/payload/contractor_entity/create.rb +13 -13
  420. data/lib/ecoportal/api/graphql/payload/contractor_entity/destroy.rb +12 -12
  421. data/lib/ecoportal/api/graphql/payload/contractor_entity/manager_settings.rb +20 -0
  422. data/lib/ecoportal/api/graphql/payload/contractor_entity/update.rb +12 -12
  423. data/lib/ecoportal/api/graphql/payload/contractor_entity.rb +1 -0
  424. data/lib/ecoportal/api/graphql/payload/kickstand/bulk_update_jobs.rb +2 -2
  425. data/lib/ecoportal/api/graphql/payload/kickstand/bulk_update_workflows.rb +2 -2
  426. data/lib/ecoportal/api/graphql/payload/location_structure/apply_commands.rb +51 -51
  427. data/lib/ecoportal/api/graphql/payload/location_structure/command_execution_result.rb +50 -50
  428. data/lib/ecoportal/api/graphql/payload/location_structure/draft/add_commands.rb +30 -30
  429. data/lib/ecoportal/api/graphql/payload/location_structure/draft/delete.rb +30 -30
  430. data/lib/ecoportal/api/graphql/payload/location_structure/draft/drop_bad_commands.rb +43 -43
  431. data/lib/ecoportal/api/graphql/payload/location_structure/draft/publish.rb +63 -63
  432. data/lib/ecoportal/api/graphql/payload/location_structure/draft.rb +18 -18
  433. data/lib/ecoportal/api/graphql/payload/location_structure.rb +14 -14
  434. data/lib/ecoportal/api/graphql/payload/ok_payload.rb +1 -1
  435. data/lib/ecoportal/api/graphql/payload/page/archive.rb +13 -13
  436. data/lib/ecoportal/api/graphql/payload/page/build_from_template.rb +13 -13
  437. data/lib/ecoportal/api/graphql/payload/page/create_from_template.rb +13 -13
  438. data/lib/ecoportal/api/graphql/payload/page/draft.rb +1 -1
  439. data/lib/ecoportal/api/graphql/payload/page/review_task.rb +1 -1
  440. data/lib/ecoportal/api/graphql/payload/page/unarchive.rb +13 -13
  441. data/lib/ecoportal/api/graphql/payload/page/update.rb +13 -13
  442. data/lib/ecoportal/api/graphql/payload/preset_view.rb +1 -1
  443. data/lib/ecoportal/api/graphql/payload/register.rb +1 -1
  444. data/lib/ecoportal/api/graphql/payload/template/update_related_page.rb +15 -0
  445. data/lib/ecoportal/api/graphql/payload/template.rb +1 -0
  446. data/lib/ecoportal/api/graphql/payload/upload.rb +12 -0
  447. data/lib/ecoportal/api/graphql/payload.rb +1 -0
  448. data/lib/ecoportal/api/graphql/query/action.rb +33 -33
  449. data/lib/ecoportal/api/graphql/query/action_categories.rb +53 -53
  450. data/lib/ecoportal/api/graphql/query/actions.rb +43 -43
  451. data/lib/ecoportal/api/graphql/query/activity_logs.rb +78 -0
  452. data/lib/ecoportal/api/graphql/query/auth_logs.rb +51 -0
  453. data/lib/ecoportal/api/graphql/query/contractor_entities.rb +53 -53
  454. data/lib/ecoportal/api/graphql/query/dashboard_search.rb +57 -0
  455. data/lib/ecoportal/api/graphql/query/file_upload_signature.rb +76 -76
  456. data/lib/ecoportal/api/graphql/query/location_classifications.rb +39 -39
  457. data/lib/ecoportal/api/graphql/query/location_structure.rb +2 -0
  458. data/lib/ecoportal/api/graphql/query/location_structures.rb +2 -0
  459. data/lib/ecoportal/api/graphql/query/page.rb +6 -1
  460. data/lib/ecoportal/api/graphql/query/page_activities.rb +56 -0
  461. data/lib/ecoportal/api/graphql/query/page_delta.rb +47 -47
  462. data/lib/ecoportal/api/graphql/query/pages.rb +59 -59
  463. data/lib/ecoportal/api/graphql/query/permissions.rb +35 -0
  464. data/lib/ecoportal/api/graphql/query/person_member_changelogs.rb +53 -0
  465. data/lib/ecoportal/api/graphql/query/person_members.rb +76 -0
  466. data/lib/ecoportal/api/graphql/query/register_preset_views.rb +1 -1
  467. data/lib/ecoportal/api/graphql/query/register_preview_pages.rb +83 -83
  468. data/lib/ecoportal/api/graphql/query/template_change_log.rb +118 -0
  469. data/lib/ecoportal/api/graphql/query/templates.rb +53 -53
  470. data/lib/ecoportal/api/graphql/query.rb +8 -0
  471. data/lib/ecoportal/api/graphql_version.rb +1 -1
  472. data/lib/ecoportal/api-graphql.rb +10 -10
  473. metadata +82 -19
  474. data/lib/ecoportal/api/common/graphql/CLAUDE.md +0 -36
  475. data/lib/ecoportal/api/common/graphql/model/CLAUDE.md +0 -28
  476. data/lib/ecoportal/api/graphql/CLAUDE.md +0 -37
  477. data/lib/ecoportal/api/graphql/base/CLAUDE.md +0 -50
  478. data/lib/ecoportal/api/graphql/builder/CLAUDE.md +0 -65
  479. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page.rb +0 -28
  480. data/lib/ecoportal/api/graphql/mutation/smart_fill/generate.rb +0 -36
  481. data/lib/ecoportal/api/graphql/mutation/smart_fill/submit_feedback.rb +0 -40
  482. data/lib/ecoportal/api/graphql/mutation/smart_fill.rb +0 -13
@@ -0,0 +1,75 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ # System Access Log entry — `currentOrganization.activityLogs` returns an
6
+ # `ActivityLogUnion` (a UNION), so fields cannot be selected on the union
7
+ # directly (only `__typename`): every field must live in an inline fragment
8
+ # per member. The 9 members share a common field set; the Dashboard* members
9
+ # additionally expose `parentResource*` + `resource { isVisible }`.
10
+ #
11
+ # To avoid repeating the shared selection 9 times we spread two helper
12
+ # fragments (:ActivityLogCommon on each member, :ActivityLogResource for the
13
+ # Dashboard members). Model::ActivityLog maps every member uniformly via its
14
+ # `__typename` passthrough, so an unmodelled/new member still resolves.
15
+ fragment :ActivityLog, <<~GRAPHQL
16
+ fragment ActivityLog on ActivityLogUnion {
17
+ __typename
18
+ ... on DashboardAccess { ...ActivityLogCommon ...ActivityLogResource }
19
+ ... on DashboardCreate { ...ActivityLogCommon ...ActivityLogResource }
20
+ ... on DashboardDelete { ...ActivityLogCommon ...ActivityLogResource }
21
+ ... on DashboardUpdate { ...ActivityLogCommon ...ActivityLogResource }
22
+ ... on DeniedDashboardAccess { ...ActivityLogCommon ...ActivityLogResource }
23
+ ... on DeniedPageAccess { ...ActivityLogCommon }
24
+ ... on PageAccess { ...ActivityLogCommon }
25
+ ... on FileDownload { ...ActivityLogCommon }
26
+ ... on ScimIntegrationAccess { ...ActivityLogCommon }
27
+ }
28
+ GRAPHQL
29
+
30
+ # Fields common to ALL ActivityLogUnion members. Spread inside each member's
31
+ # inline fragment. `__fragment_type` is intentionally omitted; the union-level
32
+ # `__typename` is selected in :ActivityLog above.
33
+ fragment :ActivityLogCommon, <<~GRAPHQL
34
+ fragment ActivityLogCommon on BaseActivityLogInterface {
35
+ id
36
+ activityType
37
+ source
38
+ userType
39
+ accountStatus
40
+ becomingEmail
41
+ content
42
+ resourceId
43
+ resourceName
44
+ resourceType
45
+ createdAt {
46
+ dateTime
47
+ timeZone
48
+ }
49
+ user {
50
+ id
51
+ email
52
+ name
53
+ }
54
+ }
55
+ GRAPHQL
56
+
57
+ # Dashboard-member-only fields (parent + visibility of the dashboard resource).
58
+ fragment :ActivityLogResource, <<~GRAPHQL
59
+ fragment ActivityLogResource on BaseDashboardActivityLogInterface {
60
+ parentResourceId
61
+ parentResourceName
62
+ parentResourceType
63
+ resource {
64
+ __typename
65
+ isVisible {
66
+ value
67
+ message
68
+ }
69
+ }
70
+ }
71
+ GRAPHQL
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,29 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ fragment :AuthLog, <<~GRAPHQL
6
+ fragment AuthLog on AuthLog {
7
+ id
8
+ event
9
+ source
10
+ loginMethod
11
+ host
12
+ ipAddress
13
+ referrer
14
+ userAgent
15
+ createdAt {
16
+ dateTime
17
+ timeZone
18
+ }
19
+ targetUser {
20
+ id
21
+ email
22
+ name
23
+ }
24
+ }
25
+ GRAPHQL
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,14 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ fragment :AuthorizationResult, <<~GRAPHQL
6
+ fragment AuthorizationResult on AuthorizationResult {
7
+ value
8
+ message
9
+ }
10
+ GRAPHQL
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,20 +1,20 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- class Fragment
5
- fragment :ContractorEntity, <<~GRAPHQL
6
- fragment ContractorEntity on ContractorEntity {
7
- id
8
- externalId
9
- name
10
- schemaId
11
- active
12
- approved
13
- associatedPeopleIds
14
- leadContractorIds
15
- }
16
- GRAPHQL
17
- end
18
- end
19
- end
20
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ fragment :ContractorEntity, <<~GRAPHQL
6
+ fragment ContractorEntity on ContractorEntity {
7
+ id
8
+ externalId
9
+ name
10
+ schemaId
11
+ active
12
+ approved
13
+ associatedPeopleIds
14
+ leadContractorIds
15
+ }
16
+ GRAPHQL
17
+ end
18
+ end
19
+ end
20
+ end
@@ -17,6 +17,7 @@ module Ecoportal
17
17
  active
18
18
  id
19
19
  name
20
+ aiGenerated
20
21
  }
21
22
  }
22
23
  GRAPHQL
@@ -1,19 +1,19 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- class Fragment
5
- fragment :LocationsError, <<~GRAPHQL
6
- fragment LocationsError on LocationsError {
7
- message
8
- conflictingIds
9
- validationErrors {
10
- property
11
- error
12
- message
13
- }
14
- }
15
- GRAPHQL
16
- end
17
- end
18
- end
19
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ fragment :LocationsError, <<~GRAPHQL
6
+ fragment LocationsError on LocationsError {
7
+ message
8
+ conflictingIds
9
+ validationErrors {
10
+ property
11
+ error
12
+ message
13
+ }
14
+ }
15
+ GRAPHQL
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,31 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ fragment :MinimalDashboard, <<~GRAPHQL
6
+ fragment MinimalDashboard on MinimalDashboard {
7
+ id
8
+ name
9
+ global
10
+ weight
11
+ parentResource
12
+ parentResourceId
13
+ parentResourceType
14
+ permissionType
15
+ owner {
16
+ id
17
+ email
18
+ name
19
+ }
20
+ register {
21
+ id
22
+ name
23
+ iconName
24
+ filterTags
25
+ }
26
+ }
27
+ GRAPHQL
28
+ end
29
+ end
30
+ end
31
+ end
@@ -18,6 +18,7 @@ module Ecoportal
18
18
  draft
19
19
  externalId
20
20
  timeZone
21
+ baseTags
21
22
  otherTags
22
23
  taskPriority
23
24
  sourceTemplateId
@@ -61,6 +61,7 @@ module Ecoportal
61
61
  fragment stageAttrs on Stage {
62
62
  id @skip(if: $only_content)
63
63
  name
64
+ tags
64
65
  ...sectionsFragment
65
66
  active
66
67
  started
@@ -85,6 +86,7 @@ module Ecoportal
85
86
  name
86
87
  uid
87
88
  locations { ...locationNode }
89
+ baseTags @include(if: $content)
88
90
  otherTags @include(if: $content)
89
91
  timeZone
90
92
  updatedAt { dateTime }
@@ -92,6 +94,16 @@ module Ecoportal
92
94
  creator { name email }
93
95
  state
94
96
  archived
97
+ # Cross-version template identity. `template` is non-null only on template pages
98
+ # (`BasePageInterface.template: Template`), so this stays nil for records.
99
+ # `templateContainerUid` is the SERIES key: many versions may carry the same uid,
100
+ # but only one may be published (`active: true`) per organization at a time —
101
+ # publishing another with the same uid unpublishes the incumbent. See
102
+ # `.ai-assistance/code/ecoPortal_architecture/02_data_model.md`.
103
+ template @skip(if: $only_content) {
104
+ templateContainerUid
105
+ active
106
+ }
95
107
  }
96
108
 
97
109
  fragment sectionsFragment on Stage {
@@ -119,6 +131,16 @@ module Ecoportal
119
131
  __typename
120
132
  id @skip(if: $only_content)
121
133
  label
134
+ # Field-configuration `description` (the hidden per-field note). Read-only from
135
+ # here — the ONLY writer is the `editFieldConfiguration` workflow command
136
+ # (`WorkflowEditFieldConfigurationInput.description`); `DataFieldInput` and its
137
+ # per-type members carry no description, so `updatePage` cannot set it.
138
+ #
139
+ # Integrations use it as a pseudo external-id on fields (we do so on templates;
140
+ # M&S do so on page instances — confirmed working on instances with a
141
+ # non-superuser service account, 2026-07-31). Fetched by default so those
142
+ # integrations can read it back.
143
+ description @skip(if: $only_content)
122
144
  genomeSignature @skip(if: $only_content)
123
145
  deindex @include(if: $content)
124
146
  linkedFieldConfig @skip(if: $only_content) {
@@ -232,6 +254,7 @@ module Ecoportal
232
254
  fragment fileField on File {
233
255
  required @skip(if: $only_content)
234
256
  items @include(if: $content) {
257
+ id
235
258
  fileContainer { ...fileContainerAttrs }
236
259
  }
237
260
  }
@@ -1,15 +1,15 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- class Fragment
5
- class Pages
6
- include Ecoportal::API::GraphQL::Concerns::FragmentDefinitions
7
- end
8
-
9
- register_namespace Pages
10
- end
11
- end
12
- end
13
- end
14
-
15
- require_relative 'pages/common_page_union'
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ class Pages
6
+ include Ecoportal::API::GraphQL::Concerns::FragmentDefinitions
7
+ end
8
+
9
+ register_namespace Pages
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ require_relative 'pages/common_page_union'
@@ -1,17 +1,17 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- class Fragment
5
- fragment :Pagination, <<~GRAPHQL
6
- fragment Pagination on ActionConnection {
7
- totalCount
8
- pageInfo {
9
- endCursor
10
- hasNextPage
11
- }
12
- }
13
- GRAPHQL
14
- end
15
- end
16
- end
17
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ fragment :Pagination, <<~GRAPHQL
6
+ fragment Pagination on ActionConnection {
7
+ totalCount
8
+ pageInfo {
9
+ endCursor
10
+ hasNextPage
11
+ }
12
+ }
13
+ GRAPHQL
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,98 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ # Selects every canXXX permission on the Permissions type, spreading :AuthorizationResult
6
+ # ({ value message }) for each. Requires the :AuthorizationResult fragment to be assembled
7
+ # alongside (Fragment.assemble(:Permissions, :AuthorizationResult)).
8
+ fragment :Permissions, <<~GRAPHQL
9
+ fragment Permissions on Permissions {
10
+ actionCanCreateStandalone { ...AuthorizationResult }
11
+ actionCanIndex { ...AuthorizationResult }
12
+ alertNotificationCanAccessBroadcastNotifications { ...AuthorizationResult }
13
+ alertNotificationCanCreate { ...AuthorizationResult }
14
+ alertNotificationCanIndex { ...AuthorizationResult }
15
+ canAccessAdminTools { ...AuthorizationResult }
16
+ canAccessPeopleManager { ...AuthorizationResult }
17
+ canDeleteActionCategories { ...AuthorizationResult }
18
+ canIndex { ...AuthorizationResult }
19
+ canListAttachablePersonMembers { ...AuthorizationResult }
20
+ canManageActionCategories { ...AuthorizationResult }
21
+ canManageStandaloneActionsPermissions { ...AuthorizationResult }
22
+ canResetActionsCounter { ...AuthorizationResult }
23
+ canUpload { ...AuthorizationResult }
24
+ contractorEntityCanAccessContractorManager { ...AuthorizationResult }
25
+ contractorEntityCanAttach { ...AuthorizationResult }
26
+ contractorEntityCanCreate { ...AuthorizationResult }
27
+ contractorEntityCanDestroy { ...AuthorizationResult }
28
+ contractorEntityCanEdit { ...AuthorizationResult }
29
+ contractorEntityCanEditLinkedUsers { ...AuthorizationResult }
30
+ contractorEntityCanIndex { ...AuthorizationResult }
31
+ contractorEntityCanManageParentContractors { ...AuthorizationResult }
32
+ contractorEntityCanManageSubcontractors { ...AuthorizationResult }
33
+ crossReferenceReportsCanIndex { ...AuthorizationResult }
34
+ dashboardCanManage { ...AuthorizationResult }
35
+ dataSetsCanIndex { ...AuthorizationResult }
36
+ dataSpaceCanShow { ...AuthorizationResult }
37
+ dataViewsCanIndex { ...AuthorizationResult }
38
+ emailReportCanConfigureSmartReport { ...AuthorizationResult }
39
+ filesCanIndex { ...AuthorizationResult }
40
+ filesCanUpload { ...AuthorizationResult }
41
+ generatedPageFilterCanCreate { ...AuthorizationResult }
42
+ generatedPageFilterCanUseSmartQuery { ...AuthorizationResult }
43
+ hasFileAbilityToDownload { ...AuthorizationResult }
44
+ locationClassificationsCanCreate { ...AuthorizationResult }
45
+ locationClassificationsCanUpdate { ...AuthorizationResult }
46
+ locationStructuresCanAccess { ...AuthorizationResult }
47
+ locationStructuresCanAdministrate { ...AuthorizationResult }
48
+ locationStructuresCanAiGenerateStructure { ...AuthorizationResult }
49
+ locationStructuresCanCreate { ...AuthorizationResult }
50
+ locationStructuresCanManage { ...AuthorizationResult }
51
+ locationStructuresCanManageSftpIntegration { ...AuthorizationResult }
52
+ locationStructuresCanPublish { ...AuthorizationResult }
53
+ locationStructuresCanRead { ...AuthorizationResult }
54
+ locationStructuresCanScheduleUpdate { ...AuthorizationResult }
55
+ locationStructuresCanUpdate { ...AuthorizationResult }
56
+ organizationCanViewSettings { ...AuthorizationResult }
57
+ pageAiSummaryCanAccess { ...AuthorizationResult }
58
+ pageCanListDrafts { ...AuthorizationResult }
59
+ pageCanRestore { ...AuthorizationResult }
60
+ pageCanUseDrafts { ...AuthorizationResult }
61
+ pageSmartAssistantCanChat { ...AuthorizationResult }
62
+ personSchemaCanAccessManager { ...AuthorizationResult }
63
+ publicTemplatesCanCopyLink { ...AuthorizationResult }
64
+ publicTemplatesCanIndex { ...AuthorizationResult }
65
+ publicTemplatesCanListEntries { ...AuthorizationResult }
66
+ publicTemplatesCanManage { ...AuthorizationResult }
67
+ registerAssistantCanChat { ...AuthorizationResult }
68
+ registerCanAccessRegisterTools { ...AuthorizationResult }
69
+ registerCanCreate { ...AuthorizationResult }
70
+ registerCanLimitTemplates { ...AuthorizationResult }
71
+ scimIntegrationCanAddCodeHooks { ...AuthorizationResult }
72
+ scimIntegrationCanCreate { ...AuthorizationResult }
73
+ scimIntegrationCanDestroy { ...AuthorizationResult }
74
+ scimIntegrationCanGenerateApiKey { ...AuthorizationResult }
75
+ scimIntegrationCanIndex { ...AuthorizationResult }
76
+ scimIntegrationCanShow { ...AuthorizationResult }
77
+ scimIntegrationCanShowLogs { ...AuthorizationResult }
78
+ scimIntegrationCanUpdate { ...AuthorizationResult }
79
+ spatialCanUpdateLocationNodeGeojson { ...AuthorizationResult }
80
+ structuresCanIndex { ...AuthorizationResult }
81
+ templateCanRestore { ...AuthorizationResult }
82
+ userAccessLogsCanShow { ...AuthorizationResult }
83
+ userCanAccessAdminArea { ...AuthorizationResult }
84
+ userCanAccessPageCreationTools { ...AuthorizationResult }
85
+ visitorLogCanAdminCheckIn { ...AuthorizationResult }
86
+ visitorLogCanEdit { ...AuthorizationResult }
87
+ visitorLogCanManage { ...AuthorizationResult }
88
+ visitorLogCanShow { ...AuthorizationResult }
89
+ visitorManagementCanAccessVisitorManager { ...AuthorizationResult }
90
+ visitorManagementCanIndex { ...AuthorizationResult }
91
+ webhooksCanManageSubscriptions { ...AuthorizationResult }
92
+ webhooksCanViewSubscriptions { ...AuthorizationResult }
93
+ }
94
+ GRAPHQL
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,33 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ fragment :PersonMemberChangelog, <<~GRAPHQL
6
+ fragment PersonMemberChangelog on PersonMemberChangelog {
7
+ id
8
+ operation
9
+ accountOperation
10
+ personMemberId
11
+ apiKeyPrefix
12
+ changedByApi
13
+ humanReadableDifferences
14
+ createdAt {
15
+ dateTime
16
+ timeZone
17
+ }
18
+ personMember {
19
+ id
20
+ name
21
+ email
22
+ }
23
+ user {
24
+ id
25
+ email
26
+ name
27
+ }
28
+ }
29
+ GRAPHQL
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,102 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ # Node selection for a TEMPLATE change-log entry — `template { commands { nodes } }`.
6
+ #
7
+ # The type condition is the INTERFACE `PagesWorkflowCommandInterface`
8
+ # (`app/graphql/types/pages/interfaces/workflow_command_interface.rb`, graphql_name set
9
+ # explicitly there). Spreading a fragment on an interface at an interface-typed location
10
+ # is legal; selecting a CONCRETE type's field (e.g. `changes`, `changeMessages`) is not,
11
+ # unless wrapped in an inline fragment. Everything below is therefore an interface field,
12
+ # plus `__typename` so callers can branch on the concrete command class.
13
+ #
14
+ # Deliberately NOT selected, and why:
15
+ # - `stage: StageType` and `task: TaskInterface` — object subtrees; `stageId`/`stageName`
16
+ # and `taskId`/`taskType` already answer "which stage / which task" as scalars, and
17
+ # both resolvers do an extra RecordLoader/EmbeddedObjectLoader round trip. Select them
18
+ # explicitly with a custom connection block if you need the full objects.
19
+ # - the concrete-type extras (`changes { field from to }`, `changeMessages`) — see
20
+ # `Fragment :PagesWorkflowCommandFields` in `fragment/pages_workflow.rb`, which already
21
+ # models them for the workflow-builder side of the same interface.
22
+ #
23
+ # See `Base::Template::ChangeLogEntry` for the two access caveats (nil-when-unpermitted,
24
+ # TEMPLATE_BUILDER-only) and the forces watermark blind spot.
25
+ fragment :TemplateChangeLogEntry, <<~GRAPHQL
26
+ fragment TemplateChangeLogEntry on PagesWorkflowCommandInterface {
27
+ __typename
28
+ id
29
+ commandAction
30
+ patchVer
31
+ createdAt {
32
+ dateTime
33
+ timeZone
34
+ }
35
+ updatedAt {
36
+ dateTime
37
+ timeZone
38
+ }
39
+ ownerId
40
+ owner {
41
+ id
42
+ name
43
+ email
44
+ }
45
+ stageId
46
+ stageName
47
+ taskId
48
+ taskType
49
+ targetedResourceId
50
+ targetedResourceName
51
+ targetedResourceType
52
+ }
53
+ GRAPHQL
54
+
55
+ # DETAIL selection — the same entry PLUS what actually changed.
56
+ #
57
+ # Opt in to this only when you need it: it costs three inline fragments and their
58
+ # sub-selections on every node. `Query::TemplateChangeLog.detail_block` and
59
+ # `api.template.change_log(detail: true)` both use it; the light
60
+ # `:TemplateChangeLogEntry` above stays the default so "who changed this, and when"
61
+ # does not pay for per-type detail.
62
+ #
63
+ # ★ The three concrete types report changes DIFFERENTLY, verified against the backend
64
+ # (2026-08-20) — this is why one flat shape cannot describe them:
65
+ # - `PagesWorkflowCommandChange.changes: [ChangeType!]!` — `ChangeType` is
66
+ # `{ field: String!, from: String, to: String }` (`app/graphql/types/change_type.rb`),
67
+ # i.e. before/after as STRINGS. This is the common case.
68
+ # - `PagesWorkflowCommandChangeMessage.changeMessages` — pre-rendered human strings, no
69
+ # field/from/to at all.
70
+ # - `PagesWorkflowCommandEsChange.changes: [StoredEsFilterChangeType!]!` where `from`/`to`
71
+ # are `StoredEsFilterType` OBJECTS, not strings
72
+ # (`app/graphql/types/stored_es_filter_change_type.rb`). Only `field` is selected here,
73
+ # deliberately: naming which filter changed is useful, and `StoredEsFilterType`'s own
74
+ # shape has not been verified, so selecting into it would be a guess. An ES-change entry
75
+ # therefore tells you WHICH filter moved, not its before/after.
76
+ # (Reached via `WorkflowCallbacks::EditTrigger` — see the interface's `resolve_type`.)
77
+ #
78
+ # So branch on `__typename` (or ask `entry.detail_kind`) before reading `changes`.
79
+ fragment :TemplateChangeLogEntryDetail, <<~GRAPHQL
80
+ fragment TemplateChangeLogEntryDetail on PagesWorkflowCommandInterface {
81
+ ...TemplateChangeLogEntry
82
+ ... on PagesWorkflowCommandChange {
83
+ changes {
84
+ field
85
+ from
86
+ to
87
+ }
88
+ }
89
+ ... on PagesWorkflowCommandChangeMessage {
90
+ changeMessages
91
+ }
92
+ ... on PagesWorkflowCommandEsChange {
93
+ changes {
94
+ field
95
+ }
96
+ }
97
+ }
98
+ GRAPHQL
99
+ end
100
+ end
101
+ end
102
+ end
@@ -35,6 +35,14 @@ require_relative 'fragment/page'
35
35
  require_relative 'fragment/pages'
36
36
  require_relative 'fragment/force'
37
37
  require_relative 'fragment/pages_workflow'
38
+ require_relative 'fragment/authorization_result'
39
+ require_relative 'fragment/permissions'
40
+ require_relative 'fragment/activity'
41
+ require_relative 'fragment/activity_log'
42
+ require_relative 'fragment/auth_log'
43
+ require_relative 'fragment/person_member_changelog'
44
+ require_relative 'fragment/minimal_dashboard'
38
45
  require_relative 'fragment/field_configuration'
39
46
  require_relative 'fragment/page_task'
40
47
  require_relative 'fragment/template'
48
+ require_relative 'fragment/template_change_log'