ecoportal-api-graphql 1.3.12 → 1.3.14

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 (64) 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/compat-layer-audit/COMPAT_AUDIT.md +244 -0
  5. data/.ai-assistance/projects/template-model-logic/CATEGORY_CATALOG.md +236 -0
  6. data/.ai-assistance/projects/template-model-logic/CLASSIFICATION_SPIKE.md +243 -0
  7. data/.ai-assistance/projects/template-model-logic/DESIGN_NOTE.md +154 -0
  8. data/.ai-assistance/scripts/bridge-inbox-check.sh +75 -0
  9. data/.ai-assistance/skills/project-self-docs/SKILL.md +181 -0
  10. data/.ai-assistance/skills/project-self-docs/scripts/self_docs_scan.py +378 -0
  11. data/.ai-assistance/standards-version.json +9 -9
  12. data/.claude/settings.json +150 -146
  13. data/.gitignore +37 -37
  14. data/.gitlab-ci.yml +45 -0
  15. data/CHANGELOG.md +43 -0
  16. data/CLAUDE.md +1 -0
  17. data/docs/self-docs/ARCHITECTURE.md +3 -3
  18. data/docs/self-docs/CHANGES.jsonl +5 -0
  19. data/docs/self-docs/COMPLIANCE.md +79 -0
  20. data/docs/self-docs/CONVENTIONS.md +3 -3
  21. data/docs/self-docs/INTEGRATIONS.md +17 -15
  22. data/docs/self-docs/OPERATIONS.md +76 -0
  23. data/docs/self-docs/OVERVIEW.md +16 -3
  24. data/docs/self-docs/STATUS.md +9 -5
  25. data/docs/self-docs/self-docs-index.json +20 -8
  26. data/lib/ecoportal/api/common/graphql/http_client.rb +189 -177
  27. data/lib/ecoportal/api/graphql/base/location_classification_type.rb +15 -15
  28. data/lib/ecoportal/api/graphql/base/location_structure.rb +27 -27
  29. data/lib/ecoportal/api/graphql/base/organization.rb +15 -15
  30. data/lib/ecoportal/api/graphql/base.rb +35 -35
  31. data/lib/ecoportal/api/graphql/builder/contractor_entity.rb +41 -41
  32. data/lib/ecoportal/api/graphql/connection/action.rb +11 -11
  33. data/lib/ecoportal/api/graphql/connection/action_category.rb +11 -11
  34. data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +11 -11
  35. data/lib/ecoportal/api/graphql/connection/page.rb +11 -11
  36. data/lib/ecoportal/api/graphql/connection/person_member.rb +11 -11
  37. data/lib/ecoportal/api/graphql/connection/preview_page.rb +11 -11
  38. data/lib/ecoportal/api/graphql/connection.rb +17 -17
  39. data/lib/ecoportal/api/graphql/fragment/location_node.rb +26 -26
  40. data/lib/ecoportal/api/graphql/input/contractor_entity.rb +14 -14
  41. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage.rb +18 -18
  42. data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +21 -21
  43. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page.rb +28 -28
  44. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page_creator_permissions.rb +18 -18
  45. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +23 -23
  46. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/date.rb +20 -20
  47. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/image_gallery.rb +20 -20
  48. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +20 -20
  49. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/rich_text.rb +20 -20
  50. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb +20 -20
  51. data/lib/ecoportal/api/graphql/input/workflow_command/move_field.rb +18 -18
  52. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_forces.rb +18 -18
  53. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_section.rb +18 -18
  54. data/lib/ecoportal/api/graphql/input/workflow_command.rb +251 -251
  55. data/lib/ecoportal/api/graphql/input.rb +24 -24
  56. data/lib/ecoportal/api/graphql/logic/connection.rb +34 -34
  57. data/lib/ecoportal/api/graphql/model/person_member.rb +15 -15
  58. data/lib/ecoportal/api/graphql/model.rb +30 -30
  59. data/lib/ecoportal/api/graphql/mutation/contractor_entity.rb +14 -14
  60. data/lib/ecoportal/api/graphql/payload/contractor_entity.rb +14 -14
  61. data/lib/ecoportal/api/graphql/query/location_structures.rb +57 -57
  62. data/lib/ecoportal/api/graphql/query.rb +27 -27
  63. data/lib/ecoportal/api/graphql_version.rb +1 -1
  64. metadata +11 -1
@@ -1,27 +1,27 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Base
5
- class LocationStructure < Interface::LocationStructure::Nodes
6
- read_only!
7
-
8
- class_resolver :location_node_class, Base::LocationNode
9
- class_resolver :draft_class, "Base::LocationStructure::Draft"
10
-
11
- passkey :id
12
- passthrough :name, :weight
13
- passboolean :archived, :published, :visitorManagementEnabled
14
- embeds_one :updatedAt, klass: Base::DateTime
15
-
16
- embeds_many :drafts, klass: :draft_class, order_key: :createdAt
17
-
18
- def draft?
19
- false
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
26
-
27
- require_relative 'location_structure/draft'
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ class LocationStructure < Interface::LocationStructure::Nodes
6
+ read_only!
7
+
8
+ class_resolver :location_node_class, Base::LocationNode
9
+ class_resolver :draft_class, "Base::LocationStructure::Draft"
10
+
11
+ passkey :id
12
+ passthrough :name, :weight
13
+ passboolean :archived, :published, :visitorManagementEnabled
14
+ embeds_one :updatedAt, klass: Base::DateTime
15
+
16
+ embeds_many :drafts, klass: :draft_class, order_key: :createdAt
17
+
18
+ def draft?
19
+ false
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+
27
+ require_relative 'location_structure/draft'
@@ -1,15 +1,15 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Base
5
- class Organization < Logic::BaseModel
6
- root!
7
-
8
- passkey :id
9
- passthrough :name, :companyName
10
- passthrough :logoUrl, read_only: true
11
- end
12
- end
13
- end
14
- end
15
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ class Organization < Logic::BaseModel
6
+ root!
7
+
8
+ passkey :id
9
+ passthrough :name, :companyName
10
+ passthrough :logoUrl, read_only: true
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,35 +1,35 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Base
5
- end
6
- end
7
- end
8
- end
9
-
10
- require_relative 'base/date_time'
11
- require_relative 'base/page_info'
12
- require_relative 'base/location_classification_type'
13
- require_relative 'base/location_node'
14
- require_relative 'base/location_structure'
15
- require_relative 'base/person_member'
16
- require_relative 'base/file_attachment'
17
- require_relative 'base/file_container'
18
- require_relative 'base/field'
19
- require_relative 'base/page'
20
- require_relative 'base/resource'
21
- require_relative 'base/action_category'
22
- require_relative 'base/action'
23
- require_relative 'base/contractor_entity'
24
- require_relative 'base/preview_page'
25
- require_relative 'base/delta_result'
26
- require_relative 'base/organization'
27
-
28
- require_relative 'base/register'
29
- require_relative 'base/preset_view'
30
-
31
- require_relative 'base/ai_summary_version'
32
-
33
- require_relative 'base/force'
34
- require_relative 'base/pages_workflow'
35
- require_relative 'base/kickstand'
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Base
5
+ end
6
+ end
7
+ end
8
+ end
9
+
10
+ require_relative 'base/date_time'
11
+ require_relative 'base/page_info'
12
+ require_relative 'base/location_classification_type'
13
+ require_relative 'base/location_node'
14
+ require_relative 'base/location_structure'
15
+ require_relative 'base/person_member'
16
+ require_relative 'base/file_attachment'
17
+ require_relative 'base/file_container'
18
+ require_relative 'base/field'
19
+ require_relative 'base/page'
20
+ require_relative 'base/resource'
21
+ require_relative 'base/action_category'
22
+ require_relative 'base/action'
23
+ require_relative 'base/contractor_entity'
24
+ require_relative 'base/preview_page'
25
+ require_relative 'base/delta_result'
26
+ require_relative 'base/organization'
27
+
28
+ require_relative 'base/register'
29
+ require_relative 'base/preset_view'
30
+
31
+ require_relative 'base/ai_summary_version'
32
+
33
+ require_relative 'base/force'
34
+ require_relative 'base/pages_workflow'
35
+ require_relative 'base/kickstand'
@@ -1,41 +1,41 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Builder
5
- class ContractorEntity
6
- attr_reader :client
7
-
8
- def initialize(client)
9
- @client = client
10
- end
11
-
12
- def create(**kargs, &block)
13
- createMutation.query(**kargs, &block)
14
- end
15
-
16
- def update(**kargs, &block)
17
- updateMutation.query(**kargs, &block)
18
- end
19
-
20
- def destroy(**kargs, &block)
21
- destroyMutation.query(**kargs, &block)
22
- end
23
-
24
- private
25
-
26
- def createMutation
27
- Mutation::ContractorEntity::Create.new(client)
28
- end
29
-
30
- def updateMutation
31
- Mutation::ContractorEntity::Update.new(client)
32
- end
33
-
34
- def destroyMutation
35
- Mutation::ContractorEntity::Destroy.new(client)
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Builder
5
+ class ContractorEntity
6
+ attr_reader :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def create(**kargs, &block)
13
+ createMutation.query(**kargs, &block)
14
+ end
15
+
16
+ def update(**kargs, &block)
17
+ updateMutation.query(**kargs, &block)
18
+ end
19
+
20
+ def destroy(**kargs, &block)
21
+ destroyMutation.query(**kargs, &block)
22
+ end
23
+
24
+ private
25
+
26
+ def createMutation
27
+ Mutation::ContractorEntity::Create.new(client)
28
+ end
29
+
30
+ def updateMutation
31
+ Mutation::ContractorEntity::Update.new(client)
32
+ end
33
+
34
+ def destroyMutation
35
+ Mutation::ContractorEntity::Destroy.new(client)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,11 +1,11 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Connection
5
- class Action < Logic::Connection
6
- class_resolver :node_class, Model::Action
7
- end
8
- end
9
- end
10
- end
11
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Connection
5
+ class Action < Logic::Connection
6
+ class_resolver :node_class, Model::Action
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,11 +1,11 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Connection
5
- class ActionCategory < Logic::Connection
6
- class_resolver :node_class, Base::ActionCategory
7
- end
8
- end
9
- end
10
- end
11
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Connection
5
+ class ActionCategory < Logic::Connection
6
+ class_resolver :node_class, Base::ActionCategory
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,11 +1,11 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Connection
5
- class ContractorEntity < Logic::Connection
6
- class_resolver :node_class, Model::ContractorEntity
7
- end
8
- end
9
- end
10
- end
11
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Connection
5
+ class ContractorEntity < Logic::Connection
6
+ class_resolver :node_class, Model::ContractorEntity
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,11 +1,11 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Connection
5
- class Page < Logic::Connection
6
- class_resolver :node_class, 'Ecoportal::API::GraphQL::Model::PageUnion'
7
- end
8
- end
9
- end
10
- end
11
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Connection
5
+ class Page < Logic::Connection
6
+ class_resolver :node_class, 'Ecoportal::API::GraphQL::Model::PageUnion'
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,11 +1,11 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Connection
5
- class PersonMemberConnection < Logic::Connection
6
- class_resolver :node_class, Model::PersonMember
7
- end
8
- end
9
- end
10
- end
11
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Connection
5
+ class PersonMemberConnection < Logic::Connection
6
+ class_resolver :node_class, Model::PersonMember
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,11 +1,11 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Connection
5
- class PreviewPage < Logic::Connection
6
- class_resolver :node_class, 'Ecoportal::API::GraphQL::Model::PreviewPage'
7
- end
8
- end
9
- end
10
- end
11
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Connection
5
+ class PreviewPage < Logic::Connection
6
+ class_resolver :node_class, 'Ecoportal::API::GraphQL::Model::PreviewPage'
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,17 +1,17 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Connection
5
- end
6
- end
7
- end
8
- end
9
-
10
- require_relative 'connection/person_member'
11
- require_relative 'connection/contractor_entity'
12
- require_relative 'connection/action_category'
13
- require_relative 'connection/action'
14
- require_relative 'connection/page'
15
- require_relative 'connection/preview_page'
16
- require_relative 'connection/preset_view'
17
- require_relative 'connection/pages_workflow_command'
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Connection
5
+ end
6
+ end
7
+ end
8
+ end
9
+
10
+ require_relative 'connection/person_member'
11
+ require_relative 'connection/contractor_entity'
12
+ require_relative 'connection/action_category'
13
+ require_relative 'connection/action'
14
+ require_relative 'connection/page'
15
+ require_relative 'connection/preview_page'
16
+ require_relative 'connection/preset_view'
17
+ require_relative 'connection/pages_workflow_command'
@@ -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
@@ -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