ecoportal-api-graphql 1.3.13 → 1.3.15

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 (106) hide show
  1. checksums.yaml +4 -4
  2. data/.ai-assistance/bridge/archive/oscar-a1b2c3d-gitlab-mcp-doc-update.inbox.md +29 -29
  3. data/.ai-assistance/bridge/archive/oscar-c912c25-gemini-design-review.inbox.md +42 -42
  4. data/.ai-assistance/projects/TODO.md +170 -118
  5. data/.ai-assistance/skills/ai-instructions/SKILL.md +48 -48
  6. data/.ai-assistance/skills/code-specs/SKILL.md +69 -69
  7. data/.ai-assistance/skills/gemini-assist/SKILL.md +63 -63
  8. data/.ai-assistance/skills/project-cycle/SKILL.md +177 -177
  9. data/.ai-assistance/skills/refactor/SKILL.md +62 -62
  10. data/.ai-assistance/skills/spec-generation/SKILL.md +72 -72
  11. data/.gitignore +37 -37
  12. data/.gitlab-ci.yml +64 -12
  13. data/CHANGELOG.md +77 -0
  14. data/changelog.d/fixed-mr51-payload-item-mismatches.md +17 -0
  15. data/docs/worklog.md +0 -18
  16. data/lib/ecoportal/api/common/graphql/client.rb +0 -2
  17. data/lib/ecoportal/api/common/graphql/http_client.rb +6 -0
  18. data/lib/ecoportal/api/graphql/base/ai_summary_version.rb +17 -17
  19. data/lib/ecoportal/api/graphql/base/location_classification_type.rb +15 -15
  20. data/lib/ecoportal/api/graphql/base/location_structure.rb +27 -27
  21. data/lib/ecoportal/api/graphql/base/organization.rb +15 -15
  22. data/lib/ecoportal/api/graphql/base/page/task.rb +24 -0
  23. data/lib/ecoportal/api/graphql/base/page.rb +17 -16
  24. data/lib/ecoportal/api/graphql/base/template.rb +35 -0
  25. data/lib/ecoportal/api/graphql/base.rb +37 -35
  26. data/lib/ecoportal/api/graphql/builder/contractor_entity.rb +41 -41
  27. data/lib/ecoportal/api/graphql/compat/response.rb +35 -35
  28. data/lib/ecoportal/api/graphql/connection/action.rb +11 -11
  29. data/lib/ecoportal/api/graphql/connection/action_category.rb +11 -11
  30. data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +11 -11
  31. data/lib/ecoportal/api/graphql/connection/page.rb +11 -11
  32. data/lib/ecoportal/api/graphql/connection/person_member.rb +11 -11
  33. data/lib/ecoportal/api/graphql/connection/preview_page.rb +11 -11
  34. data/lib/ecoportal/api/graphql/connection.rb +17 -17
  35. data/lib/ecoportal/api/graphql/file_upload/client.rb +21 -10
  36. data/lib/ecoportal/api/graphql/fragment/field_configuration.rb +38 -0
  37. data/lib/ecoportal/api/graphql/fragment/force.rb +14 -10
  38. data/lib/ecoportal/api/graphql/fragment/location_node.rb +26 -26
  39. data/lib/ecoportal/api/graphql/fragment/page_task.rb +39 -0
  40. data/lib/ecoportal/api/graphql/fragment/template.rb +51 -0
  41. data/lib/ecoportal/api/graphql/fragment.rb +3 -0
  42. data/lib/ecoportal/api/graphql/input/contractor_entity.rb +14 -14
  43. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage.rb +18 -18
  44. data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +21 -21
  45. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page.rb +28 -28
  46. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page_creator_permissions.rb +18 -18
  47. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +23 -23
  48. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/date.rb +20 -20
  49. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/image_gallery.rb +20 -20
  50. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +20 -20
  51. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/rich_text.rb +20 -20
  52. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb +20 -20
  53. data/lib/ecoportal/api/graphql/input/workflow_command/move_field.rb +18 -18
  54. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_forces.rb +18 -18
  55. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_section.rb +18 -18
  56. data/lib/ecoportal/api/graphql/input/workflow_command.rb +251 -251
  57. data/lib/ecoportal/api/graphql/input.rb +24 -24
  58. data/lib/ecoportal/api/graphql/logic/connection.rb +34 -34
  59. data/lib/ecoportal/api/graphql/model/page/task.rb +16 -0
  60. data/lib/ecoportal/api/graphql/model/page.rb +16 -15
  61. data/lib/ecoportal/api/graphql/model/person_member.rb +15 -15
  62. data/lib/ecoportal/api/graphql/model/template.rb +15 -0
  63. data/lib/ecoportal/api/graphql/model.rb +32 -30
  64. data/lib/ecoportal/api/graphql/mutation/ai_summary/generate.rb +45 -45
  65. data/lib/ecoportal/api/graphql/mutation/ai_summary/submit_feedback.rb +40 -40
  66. data/lib/ecoportal/api/graphql/mutation/contractor_entity.rb +14 -14
  67. data/lib/ecoportal/api/graphql/mutation/page/approve_review_task.rb +40 -40
  68. data/lib/ecoportal/api/graphql/mutation/page/batch_update_review_task.rb +38 -40
  69. data/lib/ecoportal/api/graphql/mutation/page/create_draft.rb +38 -40
  70. data/lib/ecoportal/api/graphql/mutation/page/delete_draft.rb +38 -40
  71. data/lib/ecoportal/api/graphql/mutation/page/execute_force_commands.rb +7 -7
  72. data/lib/ecoportal/api/graphql/mutation/page/execute_workflow_commands.rb +8 -7
  73. data/lib/ecoportal/api/graphql/mutation/page/publish_draft.rb +38 -40
  74. data/lib/ecoportal/api/graphql/mutation/page/reject_review_task.rb +40 -40
  75. data/lib/ecoportal/api/graphql/mutation/page/restart_review_task.rb +40 -40
  76. data/lib/ecoportal/api/graphql/mutation/page/undo_review_task.rb +40 -40
  77. data/lib/ecoportal/api/graphql/mutation/preset_view/destroy.rb +34 -35
  78. data/lib/ecoportal/api/graphql/mutation/register/destroy.rb +35 -35
  79. data/lib/ecoportal/api/graphql/mutation/smart_fill/generate.rb +36 -36
  80. data/lib/ecoportal/api/graphql/mutation/smart_fill/submit_feedback.rb +40 -40
  81. data/lib/ecoportal/api/graphql/mutation/smart_fill.rb +13 -13
  82. data/lib/ecoportal/api/graphql/mutation/template/create_related_page.rb +46 -46
  83. data/lib/ecoportal/api/graphql/mutation/template/destroy_related_page.rb +1 -1
  84. data/lib/ecoportal/api/graphql/mutation/template/update_information.rb +1 -1
  85. data/lib/ecoportal/api/graphql/mutation.rb +20 -20
  86. data/lib/ecoportal/api/graphql/payload/contractor_entity.rb +14 -14
  87. data/lib/ecoportal/api/graphql/payload/ok_payload.rb +36 -21
  88. data/lib/ecoportal/api/graphql/payload/page/draft.rb +26 -13
  89. data/lib/ecoportal/api/graphql/payload/page/review_task.rb +13 -13
  90. data/lib/ecoportal/api/graphql/payload/page/review_task_batch.rb +23 -0
  91. data/lib/ecoportal/api/graphql/payload/page.rb +20 -19
  92. data/lib/ecoportal/api/graphql/payload/preset_view.rb +15 -11
  93. data/lib/ecoportal/api/graphql/payload/register.rb +15 -11
  94. data/lib/ecoportal/api/graphql/payload/template/create_related_page.rb +1 -1
  95. data/lib/ecoportal/api/graphql/payload/template/destroy_related_page.rb +1 -1
  96. data/lib/ecoportal/api/graphql/payload/template/update_information.rb +1 -1
  97. data/lib/ecoportal/api/graphql/query/location_structures.rb +57 -57
  98. data/lib/ecoportal/api/graphql/query/page_with_forces.rb +9 -3
  99. data/lib/ecoportal/api/graphql/query/pages_workflow_commands.rb +9 -3
  100. data/lib/ecoportal/api/graphql/query/register_preset_views.rb +78 -78
  101. data/lib/ecoportal/api/graphql/query.rb +27 -27
  102. data/lib/ecoportal/api/graphql.rb +9 -5
  103. data/lib/ecoportal/api/graphql_version.rb +1 -1
  104. data/tests/dump_schema.rb +88 -0
  105. data/tests/validate_queries.rb +34 -12
  106. metadata +11 -1
@@ -0,0 +1,38 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ # `RegisterPresetView#fieldConfigurations` returns a FieldConfigurationUnion.
6
+ # Selections can't be made directly on a union (GraphQL error: "Selections can't
7
+ # be made directly on unions"); the common fields live on FieldConfigurationInterface,
8
+ # which every union member implements, so they're pulled via an inline fragment on
9
+ # the interface rather than repeated per concrete type. Verified against the real
10
+ # frontend fragment (RegisterDataGrid/api/fieldConfigurationFragments/
11
+ # fieldConfigurationFields.graphql) — kept to the interface surface + the same three
12
+ # concrete-type extras it selects; other concrete types fall back to interface-only
13
+ # fields (matches the frontend, which doesn't cover every member either).
14
+ fragment :FieldConfiguration, <<~GRAPHQL
15
+ fragment FieldConfiguration on FieldConfigurationUnion {
16
+ __typename
17
+ ... on FieldConfigurationInterface {
18
+ id
19
+ key
20
+ name
21
+ dataFieldLabel
22
+ weight
23
+ }
24
+ ... on DateFieldConfiguration {
25
+ showTime
26
+ }
27
+ ... on DisplayLocationsFieldConfiguration {
28
+ mode
29
+ }
30
+ ... on PageNameFieldConfiguration {
31
+ displayUid
32
+ }
33
+ }
34
+ GRAPHQL
35
+ end
36
+ end
37
+ end
38
+ end
@@ -3,6 +3,17 @@ module Ecoportal
3
3
  class GraphQL
4
4
  class Fragment
5
5
  # Fields for a Force object, including all bindings needed for scripting.
6
+ #
7
+ # `Force.bindings` is `[BindingInterface]` (verified in the backend:
8
+ # `app/graphql/types/force_type.rb` + `types/forces/binding_interface.rb`), so its common
9
+ # fields are selected directly on the interface — no per-member inline fragments needed.
10
+ #
11
+ # ★ The interface exposes ONLY `name` and `referenceId` (+ `reference` per concrete type):
12
+ # there is NO `id` on a binding. The previous selection asked for `id` inside
13
+ # `... on DataFieldBinding` / `... on SectionBinding`, which makes the whole query invalid.
14
+ # Read/write asymmetry to be aware of: `WorkflowEditBindingInput` / `removeBinding` DO
15
+ # require a binding `id`, so `Force::Binding#id` (and `BindingCollection#delete!`) has no
16
+ # readable source for it — tracked as a shape-asymmetry finding, not fixable client-side.
6
17
  fragment :ForceFields, <<~GRAPHQL
7
18
  fragment ForceFields on Force {
8
19
  id
@@ -11,16 +22,9 @@ module Ecoportal
11
22
  customScript
12
23
  globalBindingIds
13
24
  bindings {
14
- ... on DataFieldBinding {
15
- id
16
- name
17
- referenceId
18
- }
19
- ... on SectionBinding {
20
- id
21
- name
22
- referenceId
23
- }
25
+ __typename
26
+ name
27
+ referenceId
24
28
  }
25
29
  }
26
30
  GRAPHQL
@@ -1,26 +1,26 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- class Fragment
5
- fragment :LocationNode, <<~GRAPHQL
6
- fragment LocationNode on LocationNodeInterface {
7
- id
8
- name
9
- weight
10
- archived
11
- archivedToken
12
- parent {
13
- id
14
- name
15
- }
16
- classifications {
17
- active
18
- id
19
- name
20
- }
21
- }
22
- GRAPHQL
23
- end
24
- end
25
- end
26
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ fragment :LocationNode, <<~GRAPHQL
6
+ fragment LocationNode on LocationNodeInterface {
7
+ id
8
+ name
9
+ weight
10
+ archived
11
+ archivedToken
12
+ parent {
13
+ id
14
+ name
15
+ }
16
+ classifications {
17
+ active
18
+ id
19
+ name
20
+ }
21
+ }
22
+ GRAPHQL
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,39 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ # Fields of a page TASK (`TaskInterface`: CompletePage / InComment / ReviewPage).
6
+ #
7
+ # The review-task mutations (`approve/reject/restart/undoReviewPageTask`) return
8
+ # `item: TaskInterface` — NOT a page. They used to select `item { ...PageFields }`,
9
+ # which is invalid GraphQL ("Fragment PageFields on BasePageInterface can't be spread
10
+ # inside TaskInterface") and made every one of those mutations fail. The page the
11
+ # caller was after is reachable through `subject` (a `PageUnion`), so it is spread
12
+ # there — where `PageFields` is legal.
13
+ #
14
+ # Verified against the live schema (2026-07-30): TaskInterface exposes complete,
15
+ # completedAt, completedBy, completedByUser, createdAt, due, escalated, escalatedAt,
16
+ # escalationTimes, escalationsDetails, fromPublicTemplate, id, nextEscalationTime,
17
+ # overdue, relativeStatus, scheduledCallbacks, stageId, subject, taskNotes, users.
18
+ fragment :PageTaskFields, <<~GRAPHQL
19
+ fragment PageTaskFields on TaskInterface {
20
+ __typename
21
+ id
22
+ stageId
23
+ complete
24
+ overdue
25
+ escalated
26
+ relativeStatus
27
+ taskNotes
28
+ createdAt { dateTime }
29
+ completedAt { dateTime }
30
+ due { dateTime }
31
+ subject {
32
+ ...PageFields
33
+ }
34
+ }
35
+ GRAPHQL
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,51 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ class Fragment
5
+ # `createTemplateRelatedPage` / `destroyTemplateRelatedPage` return
6
+ # `item: RelatedPages` — a related-pages CONFIG entry, not a page. They used to select
7
+ # `item { ...PageFields }` (invalid: "can't be spread inside RelatedPages"), which made
8
+ # both mutations fail.
9
+ #
10
+ # Verified against the live schema (2026-07-30): RelatedPages exposes filters
11
+ # (StoredEsFilter), hasInaccessibleVariables, id, pages (PreviewPageConnection),
12
+ # register (MinimalRegister), registerId, title. Only the scalars are selected here —
13
+ # `pages` is a connection and `filters`/`register` are objects needing their own
14
+ # selections; query them explicitly when needed.
15
+ fragment :TemplateRelatedPages, <<~GRAPHQL
16
+ fragment TemplateRelatedPages on RelatedPages {
17
+ id
18
+ title
19
+ registerId
20
+ hasInaccessibleVariables
21
+ }
22
+ GRAPHQL
23
+
24
+ # `updateTemplateInformation` returns `UpdateInformationPayload { item: Template }`.
25
+ # ★ NOTE the type asymmetry: elsewhere in this gem a "template" is a PAGE
26
+ # (`Query::Templates` and the other template payloads legitimately resolve to
27
+ # `Model::PageUnion`, and validate clean), but THIS mutation returns the narrow
28
+ # `Template` type — hence `item { ...PageFields }` was invalid ("can't be spread
29
+ # inside Template").
30
+ #
31
+ # Verified against the live schema (2026-07-30): Template exposes active,
32
+ # aiDescription, commands (connection), creatorEditable, creatorEnabled, creatorFlags,
33
+ # description, folders, id, public, publicConfig, templateContainerUid, templateType.
34
+ fragment :TemplateInformation, <<~GRAPHQL
35
+ fragment TemplateInformation on Template {
36
+ id
37
+ description
38
+ aiDescription
39
+ templateType
40
+ templateContainerUid
41
+ active
42
+ public
43
+ folders
44
+ creatorEnabled
45
+ creatorEditable
46
+ }
47
+ GRAPHQL
48
+ end
49
+ end
50
+ end
51
+ end
@@ -35,3 +35,6 @@ 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/field_configuration'
39
+ require_relative 'fragment/page_task'
40
+ require_relative 'fragment/template'
@@ -1,14 +1,14 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Input
5
- module ContractorEntity
6
- end
7
- end
8
- end
9
- end
10
- end
11
-
12
- require_relative 'contractor_entity/create'
13
- require_relative 'contractor_entity/destroy'
14
- require_relative 'contractor_entity/update'
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Input
5
+ module ContractorEntity
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
11
+
12
+ require_relative 'contractor_entity/create'
13
+ require_relative 'contractor_entity/destroy'
14
+ require_relative 'contractor_entity/update'
@@ -1,18 +1,18 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Input
5
- class WorkflowCommand
6
- module AddStage
7
- SCHEMA_VERSION = '20260605'.freeze
8
- VALID_KEYS = %i[placeholderId name ordering].freeze
9
-
10
- def self.build(**kwargs)
11
- kwargs.slice(*VALID_KEYS).compact
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Input
5
+ class WorkflowCommand
6
+ module AddStage
7
+ SCHEMA_VERSION = '20260605'.freeze
8
+ VALID_KEYS = %i[placeholderId name ordering].freeze
9
+
10
+ def self.build(**kwargs)
11
+ kwargs.slice(*VALID_KEYS).compact
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,21 +1,21 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Input
5
- class WorkflowCommand
6
- module EditFieldConfiguration
7
- SCHEMA_VERSION = '20260605'.freeze
8
-
9
- BASE_KEYS = %i[dataFieldId label tooltip description hideView hiddenOnMobile enableActions globalBinding].freeze
10
-
11
- def self.build(data_field_id:, **kwargs)
12
- { dataFieldId: data_field_id }.
13
- merge(kwargs.slice(*(BASE_KEYS - [:dataFieldId])).compact).
14
- tap { |h| h[:byType] = kwargs[:byType] if kwargs.key?(:byType) }
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Input
5
+ class WorkflowCommand
6
+ module EditFieldConfiguration
7
+ SCHEMA_VERSION = '20260605'.freeze
8
+
9
+ BASE_KEYS = %i[dataFieldId label tooltip description hideView hiddenOnMobile enableActions globalBinding].freeze
10
+
11
+ def self.build(data_field_id:, **kwargs)
12
+ { dataFieldId: data_field_id }.
13
+ merge(kwargs.slice(*(BASE_KEYS - [:dataFieldId])).compact).
14
+ tap { |h| h[:byType] = kwargs[:byType] if kwargs.key?(:byType) }
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,28 +1,28 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Input
5
- class WorkflowCommand
6
- module EditPage
7
- SCHEMA_VERSION = '20260605'.freeze
8
- VALID_KEYS = %i[
9
- name icon themeId timeZone disableDirectPermissions mobileEnabled useSectionsOnMobile
10
- showStrategyForRestrictedStages showAssigneeNamesForRestrictedStages showTaskDueDateForRestrictedStages
11
- hideActivityStream disableComments enableDashboardImport enableActionsOnFields showCreator active
12
- counterPrefix counterPostfix counterEnabled counter
13
- addLocationIds removeLocationIds
14
- addBaseTags removeBaseTags
15
- addOtherTags removeOtherTags
16
- addFolders removeFolders
17
- creatorEnabled creatorEditable creatorFlags
18
- ].freeze
19
-
20
- def self.build(**kwargs)
21
- kwargs.slice(*VALID_KEYS).compact
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Input
5
+ class WorkflowCommand
6
+ module EditPage
7
+ SCHEMA_VERSION = '20260605'.freeze
8
+ VALID_KEYS = %i[
9
+ name icon themeId timeZone disableDirectPermissions mobileEnabled useSectionsOnMobile
10
+ showStrategyForRestrictedStages showAssigneeNamesForRestrictedStages showTaskDueDateForRestrictedStages
11
+ hideActivityStream disableComments enableDashboardImport enableActionsOnFields showCreator active
12
+ counterPrefix counterPostfix counterEnabled counter
13
+ addLocationIds removeLocationIds
14
+ addBaseTags removeBaseTags
15
+ addOtherTags removeOtherTags
16
+ addFolders removeFolders
17
+ creatorEnabled creatorEditable creatorFlags
18
+ ].freeze
19
+
20
+ def self.build(**kwargs)
21
+ kwargs.slice(*VALID_KEYS).compact
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,18 +1,18 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Input
5
- class WorkflowCommand
6
- module EditPageCreatorPermissions
7
- SCHEMA_VERSION = '20260605'.freeze
8
- VALID_KEYS = %i[creatorEnabled creatorEditable creatorFlags].freeze
9
-
10
- def self.build(**kwargs)
11
- kwargs.slice(*VALID_KEYS).compact
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Input
5
+ class WorkflowCommand
6
+ module EditPageCreatorPermissions
7
+ SCHEMA_VERSION = '20260605'.freeze
8
+ VALID_KEYS = %i[creatorEnabled creatorEditable creatorFlags].freeze
9
+
10
+ def self.build(**kwargs)
11
+ kwargs.slice(*VALID_KEYS).compact
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,23 +1,23 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Input
5
- class WorkflowCommand
6
- module EditFieldConfiguration
7
- module CrossReference
8
- SCHEMA_VERSION = '20260605'.freeze
9
- VALID_KEYS = %i[
10
- displayFields displayFieldsInLookup hideCreate hideAttach hideMetadata
11
- registerId attachSourcePage hideDashboards singleSelectMode
12
- ].freeze
13
-
14
- def self.build(**kwargs)
15
- { crossReference: kwargs.slice(*VALID_KEYS).compact }
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Input
5
+ class WorkflowCommand
6
+ module EditFieldConfiguration
7
+ module CrossReference
8
+ SCHEMA_VERSION = '20260605'.freeze
9
+ VALID_KEYS = %i[
10
+ displayFields displayFieldsInLookup hideCreate hideAttach hideMetadata
11
+ registerId attachSourcePage hideDashboards singleSelectMode
12
+ ].freeze
13
+
14
+ def self.build(**kwargs)
15
+ { crossReference: kwargs.slice(*VALID_KEYS).compact }
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,20 +1,20 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Input
5
- class WorkflowCommand
6
- module EditFieldConfiguration
7
- module Date
8
- SCHEMA_VERSION = '20260605'.freeze
9
- VALID_KEYS = %i[showTime pastOnly todayButton smartFillConfiguration removeSmartFillConfiguration].freeze
10
-
11
- def self.build(**kwargs)
12
- { date: kwargs.slice(*VALID_KEYS).compact }
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Input
5
+ class WorkflowCommand
6
+ module EditFieldConfiguration
7
+ module Date
8
+ SCHEMA_VERSION = '20260605'.freeze
9
+ VALID_KEYS = %i[showTime pastOnly todayButton smartFillConfiguration removeSmartFillConfiguration].freeze
10
+
11
+ def self.build(**kwargs)
12
+ { date: kwargs.slice(*VALID_KEYS).compact }
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,20 +1,20 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Input
5
- class WorkflowCommand
6
- module EditFieldConfiguration
7
- module ImageGallery
8
- SCHEMA_VERSION = '20260605'.freeze
9
- VALID_KEYS = %i[layout stretch noPopup hideOptions].freeze
10
-
11
- def self.build(**kwargs)
12
- { imageGallery: kwargs.slice(*VALID_KEYS).compact }
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Input
5
+ class WorkflowCommand
6
+ module EditFieldConfiguration
7
+ module ImageGallery
8
+ SCHEMA_VERSION = '20260605'.freeze
9
+ VALID_KEYS = %i[layout stretch noPopup hideOptions].freeze
10
+
11
+ def self.build(**kwargs)
12
+ { imageGallery: kwargs.slice(*VALID_KEYS).compact }
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,20 +1,20 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Input
5
- class WorkflowCommand
6
- module EditFieldConfiguration
7
- module PlainText
8
- SCHEMA_VERSION = '20260605'.freeze
9
- VALID_KEYS = %i[value maxLength embeddingEnabled smartFillConfiguration removeSmartFillConfiguration].freeze
10
-
11
- def self.build(**kwargs)
12
- { plainText: kwargs.slice(*VALID_KEYS).compact }
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Input
5
+ class WorkflowCommand
6
+ module EditFieldConfiguration
7
+ module PlainText
8
+ SCHEMA_VERSION = '20260605'.freeze
9
+ VALID_KEYS = %i[value maxLength embeddingEnabled smartFillConfiguration removeSmartFillConfiguration].freeze
10
+
11
+ def self.build(**kwargs)
12
+ { plainText: kwargs.slice(*VALID_KEYS).compact }
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,20 +1,20 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Input
5
- class WorkflowCommand
6
- module EditFieldConfiguration
7
- module RichText
8
- SCHEMA_VERSION = '20260605'.freeze
9
- VALID_KEYS = %i[content markdown embeddingEnabled smartFillConfiguration removeSmartFillConfiguration].freeze
10
-
11
- def self.build(**kwargs)
12
- { richText: kwargs.slice(*VALID_KEYS).compact }
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Input
5
+ class WorkflowCommand
6
+ module EditFieldConfiguration
7
+ module RichText
8
+ SCHEMA_VERSION = '20260605'.freeze
9
+ VALID_KEYS = %i[content markdown embeddingEnabled smartFillConfiguration removeSmartFillConfiguration].freeze
10
+
11
+ def self.build(**kwargs)
12
+ { richText: kwargs.slice(*VALID_KEYS).compact }
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end