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.
- checksums.yaml +4 -4
- data/.ai-assistance/bridge/archive/oscar-a1b2c3d-gitlab-mcp-doc-update.inbox.md +29 -29
- data/.ai-assistance/bridge/archive/oscar-c912c25-gemini-design-review.inbox.md +42 -42
- data/.ai-assistance/projects/TODO.md +170 -118
- data/.ai-assistance/skills/ai-instructions/SKILL.md +48 -48
- data/.ai-assistance/skills/code-specs/SKILL.md +69 -69
- data/.ai-assistance/skills/gemini-assist/SKILL.md +63 -63
- data/.ai-assistance/skills/project-cycle/SKILL.md +177 -177
- data/.ai-assistance/skills/refactor/SKILL.md +62 -62
- data/.ai-assistance/skills/spec-generation/SKILL.md +72 -72
- data/.gitignore +37 -37
- data/.gitlab-ci.yml +64 -12
- data/CHANGELOG.md +77 -0
- data/changelog.d/fixed-mr51-payload-item-mismatches.md +17 -0
- data/docs/worklog.md +0 -18
- data/lib/ecoportal/api/common/graphql/client.rb +0 -2
- data/lib/ecoportal/api/common/graphql/http_client.rb +6 -0
- data/lib/ecoportal/api/graphql/base/ai_summary_version.rb +17 -17
- data/lib/ecoportal/api/graphql/base/location_classification_type.rb +15 -15
- data/lib/ecoportal/api/graphql/base/location_structure.rb +27 -27
- data/lib/ecoportal/api/graphql/base/organization.rb +15 -15
- data/lib/ecoportal/api/graphql/base/page/task.rb +24 -0
- data/lib/ecoportal/api/graphql/base/page.rb +17 -16
- data/lib/ecoportal/api/graphql/base/template.rb +35 -0
- data/lib/ecoportal/api/graphql/base.rb +37 -35
- data/lib/ecoportal/api/graphql/builder/contractor_entity.rb +41 -41
- data/lib/ecoportal/api/graphql/compat/response.rb +35 -35
- data/lib/ecoportal/api/graphql/connection/action.rb +11 -11
- data/lib/ecoportal/api/graphql/connection/action_category.rb +11 -11
- data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +11 -11
- data/lib/ecoportal/api/graphql/connection/page.rb +11 -11
- data/lib/ecoportal/api/graphql/connection/person_member.rb +11 -11
- data/lib/ecoportal/api/graphql/connection/preview_page.rb +11 -11
- data/lib/ecoportal/api/graphql/connection.rb +17 -17
- data/lib/ecoportal/api/graphql/file_upload/client.rb +21 -10
- data/lib/ecoportal/api/graphql/fragment/field_configuration.rb +38 -0
- data/lib/ecoportal/api/graphql/fragment/force.rb +14 -10
- data/lib/ecoportal/api/graphql/fragment/location_node.rb +26 -26
- data/lib/ecoportal/api/graphql/fragment/page_task.rb +39 -0
- data/lib/ecoportal/api/graphql/fragment/template.rb +51 -0
- data/lib/ecoportal/api/graphql/fragment.rb +3 -0
- data/lib/ecoportal/api/graphql/input/contractor_entity.rb +14 -14
- data/lib/ecoportal/api/graphql/input/workflow_command/add_stage.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +21 -21
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_page.rb +28 -28
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_page_creator_permissions.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +23 -23
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/date.rb +20 -20
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/image_gallery.rb +20 -20
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +20 -20
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/rich_text.rb +20 -20
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb +20 -20
- data/lib/ecoportal/api/graphql/input/workflow_command/move_field.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/reorder_forces.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/reorder_section.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command.rb +251 -251
- data/lib/ecoportal/api/graphql/input.rb +24 -24
- data/lib/ecoportal/api/graphql/logic/connection.rb +34 -34
- data/lib/ecoportal/api/graphql/model/page/task.rb +16 -0
- data/lib/ecoportal/api/graphql/model/page.rb +16 -15
- data/lib/ecoportal/api/graphql/model/person_member.rb +15 -15
- data/lib/ecoportal/api/graphql/model/template.rb +15 -0
- data/lib/ecoportal/api/graphql/model.rb +32 -30
- data/lib/ecoportal/api/graphql/mutation/ai_summary/generate.rb +45 -45
- data/lib/ecoportal/api/graphql/mutation/ai_summary/submit_feedback.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/contractor_entity.rb +14 -14
- data/lib/ecoportal/api/graphql/mutation/page/approve_review_task.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/page/batch_update_review_task.rb +38 -40
- data/lib/ecoportal/api/graphql/mutation/page/create_draft.rb +38 -40
- data/lib/ecoportal/api/graphql/mutation/page/delete_draft.rb +38 -40
- data/lib/ecoportal/api/graphql/mutation/page/execute_force_commands.rb +7 -7
- data/lib/ecoportal/api/graphql/mutation/page/execute_workflow_commands.rb +8 -7
- data/lib/ecoportal/api/graphql/mutation/page/publish_draft.rb +38 -40
- data/lib/ecoportal/api/graphql/mutation/page/reject_review_task.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/page/restart_review_task.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/page/undo_review_task.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/preset_view/destroy.rb +34 -35
- data/lib/ecoportal/api/graphql/mutation/register/destroy.rb +35 -35
- data/lib/ecoportal/api/graphql/mutation/smart_fill/generate.rb +36 -36
- data/lib/ecoportal/api/graphql/mutation/smart_fill/submit_feedback.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/smart_fill.rb +13 -13
- data/lib/ecoportal/api/graphql/mutation/template/create_related_page.rb +46 -46
- data/lib/ecoportal/api/graphql/mutation/template/destroy_related_page.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/template/update_information.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation.rb +20 -20
- data/lib/ecoportal/api/graphql/payload/contractor_entity.rb +14 -14
- data/lib/ecoportal/api/graphql/payload/ok_payload.rb +36 -21
- data/lib/ecoportal/api/graphql/payload/page/draft.rb +26 -13
- data/lib/ecoportal/api/graphql/payload/page/review_task.rb +13 -13
- data/lib/ecoportal/api/graphql/payload/page/review_task_batch.rb +23 -0
- data/lib/ecoportal/api/graphql/payload/page.rb +20 -19
- data/lib/ecoportal/api/graphql/payload/preset_view.rb +15 -11
- data/lib/ecoportal/api/graphql/payload/register.rb +15 -11
- data/lib/ecoportal/api/graphql/payload/template/create_related_page.rb +1 -1
- data/lib/ecoportal/api/graphql/payload/template/destroy_related_page.rb +1 -1
- data/lib/ecoportal/api/graphql/payload/template/update_information.rb +1 -1
- data/lib/ecoportal/api/graphql/query/location_structures.rb +57 -57
- data/lib/ecoportal/api/graphql/query/page_with_forces.rb +9 -3
- data/lib/ecoportal/api/graphql/query/pages_workflow_commands.rb +9 -3
- data/lib/ecoportal/api/graphql/query/register_preset_views.rb +78 -78
- data/lib/ecoportal/api/graphql/query.rb +27 -27
- data/lib/ecoportal/api/graphql.rb +9 -5
- data/lib/ecoportal/api/graphql_version.rb +1 -1
- data/tests/dump_schema.rb +88 -0
- data/tests/validate_queries.rb +34 -12
- 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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|