ecoportal-api-graphql 1.3.5 → 1.3.9
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/CLAUDE.md +338 -0
- data/.ai-assistance/bridge/archive/.gitkeep +0 -0
- data/.ai-assistance/bridge/archive/oscar-a1b2c3d-gitlab-mcp-doc-update.inbox.md +29 -0
- data/.ai-assistance/bridge/archive/oscar-a1b2c3d-gitlab-mcp-doc-update.outbox.md +18 -0
- data/.ai-assistance/bridge/archive/oscar-c912c25-gemini-design-review.inbox.md +42 -0
- data/.ai-assistance/bridge/archive/oscar-c912c25-gemini-design-review.outbox.md +115 -0
- data/.ai-assistance/bridge/context/gemini-review-prompt.txt +48 -0
- data/.ai-assistance/bridge/context/gemini-review-response.md +104 -0
- data/.ai-assistance/bridge/context/project.md +42 -0
- data/.ai-assistance/bridge/inbox/.gitkeep +0 -0
- data/.ai-assistance/bridge/outbox/.gitkeep +0 -0
- data/.ai-assistance/bridge/outbox/request-for-standards-discovery.md +48 -0
- data/.ai-assistance/bridge/queue/.gitkeep +1 -0
- data/.ai-assistance/capabilities/CLAUDE.md +27 -0
- data/.ai-assistance/capabilities/assumptions-log.md +80 -0
- data/.ai-assistance/capabilities/code.md +47 -0
- data/.ai-assistance/capabilities/connectors.md +37 -0
- data/.ai-assistance/capabilities/cowork.md +55 -0
- data/.ai-assistance/code/OVERVIEW.md +155 -0
- data/.ai-assistance/code/data_fields.md +242 -0
- data/.ai-assistance/code/dependencies.md +151 -0
- data/.ai-assistance/code/diff_as_input.md +234 -0
- data/.ai-assistance/code/diff_service_deep_dive.md +192 -0
- data/.ai-assistance/code/ecoPortal_architecture/00_overview_and_index.md +55 -0
- data/.ai-assistance/code/ecoPortal_architecture/01_terminology_dictionary.md +181 -0
- data/.ai-assistance/code/ecoPortal_architecture/02_data_model.md +192 -0
- data/.ai-assistance/code/ecoPortal_architecture/03_api_layers.md +147 -0
- data/.ai-assistance/code/ecoPortal_architecture/04_graphql_queries_mutations.md +277 -0
- data/.ai-assistance/code/ecoPortal_architecture/05_page_workflows.md +200 -0
- data/.ai-assistance/code/ecoPortal_architecture/06_search_and_filters.md +228 -0
- data/.ai-assistance/code/ecoPortal_architecture/07_data_fields.md +197 -0
- data/.ai-assistance/code/ecoPortal_architecture/08_stages_sections.md +243 -0
- data/.ai-assistance/code/ecoPortal_architecture/09_people_contractors_locations.md +196 -0
- data/.ai-assistance/code/ecoPortal_architecture/10_forces_workflow_builder.md +132 -0
- data/.ai-assistance/code/ecoPortal_architecture/11_integration_gems.md +187 -0
- data/.ai-assistance/code/ecoPortal_architecture/12_ai_documentation_sources_gaps.md +236 -0
- data/.ai-assistance/code/ecoPortal_architecture/13_ai_infrastructure.md +183 -0
- data/.ai-assistance/code/ecoportal_schema_reference.md +240 -0
- data/.ai-assistance/code/graphql_domain_knowledge.md +230 -0
- data/.ai-assistance/code/refactoring/datafield-readwrite-shape-asymmetry.md +71 -0
- data/.ai-assistance/code/refactoring/opportunities.md +251 -0
- data/.ai-assistance/code/schema_analysis.md +321 -0
- data/.ai-assistance/code/search_filters.md +868 -0
- data/.ai-assistance/code/spec_coverage.md +73 -0
- data/.ai-assistance/code/workflow-command-guide.md +438 -0
- data/.ai-assistance/code/workflow-space.md +353 -0
- data/.ai-assistance/conventions/CLAUDE.md +30 -0
- data/.ai-assistance/conventions/code-working-tree-protocol.md +199 -0
- data/.ai-assistance/conventions/gitignore-rules.md +42 -0
- data/.ai-assistance/conventions/permission-guidance.md +120 -0
- data/.ai-assistance/integrations/README.md +70 -0
- data/.ai-assistance/integrations/gitkraken-mcp.md +107 -0
- data/.ai-assistance/integrations/gitlab-mcp.md +123 -0
- data/.ai-assistance/integrations/local-git.md +60 -0
- data/.ai-assistance/local_paths.example.md +17 -0
- data/.ai-assistance/projects/TODO.md +97 -0
- data/.ai-assistance/projects/api-v2-to-graphql-migration/DECISIONS.md +168 -0
- data/.ai-assistance/projects/api-v2-to-graphql-migration/INTENT.md +60 -0
- data/.ai-assistance/projects/api-v2-to-graphql-migration/TODO.md +267 -0
- data/.ai-assistance/projects/api-v2-to-graphql-migration/UPSTREAM.md +53 -0
- data/.ai-assistance/projects/api-v2-to-graphql-migration/notes/csv-template-pipeline-design.md +102 -0
- data/.ai-assistance/projects/api-v2-to-graphql-migration/notes/cutover-usecase-gap-audit.md +139 -0
- data/.ai-assistance/projects/dynamic-model-generation/INTENT.md +93 -0
- data/.ai-assistance/projects/eco-helpers-compat/INTENT.md +244 -0
- data/.ai-assistance/projects/eco-helpers-compat/MIGRATION_GUIDE.md +266 -0
- data/.ai-assistance/projects/eco-helpers-compat/TODO.md +86 -0
- data/.ai-assistance/projects/ecoportal-api-v2-doublemodel-review/INTENT.md +101 -0
- data/.ai-assistance/projects/graphql-agent/GAP_ANALYSIS.md +177 -0
- data/.ai-assistance/projects/ooze-graphql-native-migration/DECISIONS.md +161 -0
- data/.ai-assistance/projects/ooze-graphql-native-migration/INTENT.md +125 -0
- data/.ai-assistance/projects/ooze-graphql-native-migration/RISKS.md +126 -0
- data/.ai-assistance/projects/ooze-graphql-native-migration/TODO.md +256 -0
- data/.ai-assistance/projects/ooze-graphql-native-migration/analysis/2026-06-30-cutover-workflow-deep-review.md +122 -0
- data/.ai-assistance/projects/ooze-graphql-native-migration/analysis/2026-07-01-forces-via-workflow-commands-miss-rca.md +148 -0
- data/.ai-assistance/projects/page-model/DECISIONS.md +245 -0
- data/.ai-assistance/projects/page-model/TODO.md +190 -0
- data/.ai-assistance/projects/search-filter-builder/INTENT.md +107 -0
- data/.ai-assistance/projects/search-filter-builder/TODO.md +131 -0
- data/.ai-assistance/projects/template-maintenance/DESIGN.md +134 -0
- data/.ai-assistance/projects/workflow-space/TODO.md +213 -0
- data/.ai-assistance/reinstall-claude-desktop-windows.md +136 -0
- data/.ai-assistance/scripts/CLAUDE.md +150 -0
- data/.ai-assistance/scripts/bridge-init.sh +86 -0
- data/.ai-assistance/scripts/bridge-status.sh +44 -0
- data/.ai-assistance/scripts/capabilities-check.ts +104 -0
- data/.ai-assistance/scripts/check-outbox.sh +43 -0
- data/.ai-assistance/scripts/dep_graph.rb +91 -0
- data/.ai-assistance/scripts/lock-acquire.sh +103 -0
- data/.ai-assistance/scripts/lock-multi.sh +124 -0
- data/.ai-assistance/scripts/lock-queue.sh +94 -0
- data/.ai-assistance/scripts/setup-mcps.test.ts +188 -0
- data/.ai-assistance/scripts/setup-mcps.ts +234 -0
- data/.ai-assistance/scripts/task-complete.ts +74 -0
- data/.ai-assistance/scripts/task-create.ts +75 -0
- data/.ai-assistance/scripts/task-read.ts +125 -0
- data/.ai-assistance/scripts/token-logger.js +220 -0
- data/.ai-assistance/scripts/token-report.ts +158 -0
- data/.ai-assistance/scripts/token-session-start.js +66 -0
- data/.ai-assistance/skills/ai-instructions/SKILL.md +48 -0
- data/.ai-assistance/skills/code-specs/SKILL.md +69 -0
- data/.ai-assistance/skills/corporate-policies/SKILL.md +201 -0
- data/.ai-assistance/skills/dep-graph/SKILL.md +139 -0
- data/.ai-assistance/skills/ep-ai-manager/SKILL.md +417 -0
- data/.ai-assistance/skills/gemini-assist/SKILL.md +63 -0
- data/.ai-assistance/skills/gemini-assist/gemini-mcp-server.js +205 -0
- data/.ai-assistance/skills/gemini-assist/gemini_ask.py +1 -0
- data/.ai-assistance/skills/gemini-assist/gemini_ask.rb +240 -0
- data/.ai-assistance/skills/gemini-assist/prompts/cycle_end_review.txt +25 -0
- data/.ai-assistance/skills/graphql-schema-analysis/SKILL.md +261 -0
- data/.ai-assistance/skills/project-cycle/SKILL.md +177 -0
- data/.ai-assistance/skills/refactor/SKILL.md +62 -0
- data/.ai-assistance/skills/rubocop/SKILL.md +93 -0
- data/.ai-assistance/skills/ruby-scripting/SKILL.md +215 -0
- data/.ai-assistance/skills/spec-generation/SKILL.md +72 -0
- data/.ai-assistance/standards-version.json +21 -0
- data/.ai-assistance/token-budget.json +32 -0
- data/.ai-assistance/version.json +39 -0
- data/.claude/settings.json +146 -0
- data/.env.example +18 -0
- data/.gitattributes +15 -0
- data/.gitignore +13 -0
- data/.rubocop.yml +121 -97
- data/CHANGELOG.md +673 -477
- data/CLAUDE.md +232 -0
- data/Gemfile +30 -6
- data/Rakefile +90 -38
- data/docs/worklog.md +574 -0
- data/ecoportal-api-graphql.gemspec +40 -40
- data/lib/ecoportal/api/common/graphql/CLAUDE.md +36 -0
- data/lib/ecoportal/api/common/graphql/client.rb +1 -1
- data/lib/ecoportal/api/common/graphql/http_client.rb +35 -3
- data/lib/ecoportal/api/common/graphql/model/CLAUDE.md +28 -0
- data/lib/ecoportal/api/common/graphql/model/as_input.rb +8 -5
- data/lib/ecoportal/api/common/graphql/model/diffable/classic_diff_service.rb +3 -1
- data/lib/ecoportal/api/common/graphql/model/diffable/diff_service.rb +31 -23
- data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff_nesting.rb +54 -1
- data/lib/ecoportal/api/graphql/CLAUDE.md +37 -0
- data/lib/ecoportal/api/graphql/base/CLAUDE.md +50 -0
- data/lib/ecoportal/api/graphql/base/ai_summary_version.rb +17 -0
- data/lib/ecoportal/api/graphql/base/delta_result.rb +16 -0
- data/lib/ecoportal/api/graphql/base/force/binding.rb +19 -0
- data/lib/ecoportal/api/graphql/base/force/binding_collection.rb +62 -0
- data/lib/ecoportal/api/graphql/base/force/collection.rb +47 -0
- data/lib/ecoportal/api/graphql/base/force.rb +65 -0
- data/lib/ecoportal/api/graphql/base/kickstand/job.rb +17 -0
- data/lib/ecoportal/api/graphql/base/kickstand/workflow.rb +18 -0
- data/lib/ecoportal/api/graphql/base/kickstand.rb +13 -0
- data/lib/ecoportal/api/graphql/base/page/basic.rb +38 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/actions_list.rb +9 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/ai_summary.rb +18 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/checklist.rb +29 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/collection.rb +112 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/contractor_entities.rb +28 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/cross_reference.rb +54 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/date_field.rb +23 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/file_field.rb +25 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/gauge.rb +19 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/geo.rb +24 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/image_gallery.rb +24 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/law.rb +8 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/mailbox.rb +9 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/number.rb +20 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/people.rb +35 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/plain_text.rb +17 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/rich_text.rb +26 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/select.rb +41 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/signature.rb +9 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/smart_fill.rb +17 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/table.rb +9 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/tag_field.rb +21 -0
- data/lib/ecoportal/api/graphql/base/page/data_field.rb +137 -12
- data/lib/ecoportal/api/graphql/base/page/phased/stage.rb +68 -14
- data/lib/ecoportal/api/graphql/base/page/phased.rb +1 -0
- data/lib/ecoportal/api/graphql/base/page/section.rb +36 -0
- data/lib/ecoportal/api/graphql/base/page/section_collection.rb +79 -0
- data/lib/ecoportal/api/graphql/base/page.rb +2 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/action_type_selection.rb +17 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/callback_type.rb +28 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/command_change.rb +17 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/command_change_message.rb +15 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/command_es_change.rb +17 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/command_interface.rb +36 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/email_config.rb +18 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/escalation_level.rb +19 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/in_system_config.rb +16 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/mailbox_field_selection.rb +17 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/operation_interface.rb +39 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/operations/assign_to.rb +27 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/operations/create_page.rb +21 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/operations/send_notification.rb +30 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/people_field_selection.rb +17 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/recipient_config.rb +34 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/register_field.rb +17 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/task_config_selection.rb +17 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/time_delay_config.rb +16 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/trigger_interface.rb +26 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/triggers/conditional_logic.rb +17 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow/user_selection.rb +16 -0
- data/lib/ecoportal/api/graphql/base/pages_workflow.rb +35 -0
- data/lib/ecoportal/api/graphql/base/preset_view.rb +17 -0
- data/lib/ecoportal/api/graphql/base/preview_page.rb +23 -0
- data/lib/ecoportal/api/graphql/base/register.rb +18 -0
- data/lib/ecoportal/api/graphql/base.rb +11 -0
- data/lib/ecoportal/api/graphql/builder/CLAUDE.md +65 -0
- data/lib/ecoportal/api/graphql/builder/kickstand.rb +73 -0
- data/lib/ecoportal/api/graphql/builder/page.rb +210 -41
- data/lib/ecoportal/api/graphql/builder/register/preset_view.rb +84 -0
- data/lib/ecoportal/api/graphql/builder/register.rb +27 -19
- data/lib/ecoportal/api/graphql/builder/template.rb +80 -0
- data/lib/ecoportal/api/graphql/builder.rb +2 -0
- data/lib/ecoportal/api/graphql/compat/filter_translator.rb +107 -0
- data/lib/ecoportal/api/graphql/compat/page_reference.rb +23 -0
- data/lib/ecoportal/api/graphql/compat/pages.rb +212 -0
- data/lib/ecoportal/api/graphql/compat/registers.rb +84 -0
- data/lib/ecoportal/api/graphql/compat/response.rb +35 -0
- data/lib/ecoportal/api/graphql/compat/search_results.rb +33 -0
- data/lib/ecoportal/api/graphql/compat/stage_collection.rb +70 -0
- data/lib/ecoportal/api/graphql/compat/stage_view.rb +76 -0
- data/lib/ecoportal/api/graphql/compat.rb +17 -0
- data/lib/ecoportal/api/graphql/concerns/data_field_access.rb +71 -0
- data/lib/ecoportal/api/graphql/concerns/deprecation.rb +20 -0
- data/lib/ecoportal/api/graphql/concerns/fragment_definitions.rb +21 -28
- data/lib/ecoportal/api/graphql/concerns/page_compat.rb +51 -0
- data/lib/ecoportal/api/graphql/concerns/snake_camel_access.rb +60 -0
- data/lib/ecoportal/api/graphql/concerns.rb +4 -0
- data/lib/ecoportal/api/graphql/connection/page.rb +11 -0
- data/lib/ecoportal/api/graphql/connection/pages_workflow_command.rb +13 -0
- data/lib/ecoportal/api/graphql/connection/preset_view.rb +11 -0
- data/lib/ecoportal/api/graphql/connection/preview_page.rb +11 -0
- data/lib/ecoportal/api/graphql/connection.rb +4 -0
- data/lib/ecoportal/api/graphql/file_upload/client.rb +181 -0
- data/lib/ecoportal/api/graphql/file_upload.rb +10 -0
- data/lib/ecoportal/api/graphql/fragment/action.rb +1 -1
- data/lib/ecoportal/api/graphql/fragment/action_category.rb +1 -1
- data/lib/ecoportal/api/graphql/fragment/contractor_entity.rb +1 -1
- data/lib/ecoportal/api/graphql/fragment/force.rb +30 -0
- data/lib/ecoportal/api/graphql/fragment/location_draft.rb +2 -2
- data/lib/ecoportal/api/graphql/fragment/location_node.rb +1 -1
- data/lib/ecoportal/api/graphql/fragment/locations_error.rb +1 -1
- data/lib/ecoportal/api/graphql/fragment/page.rb +85 -0
- data/lib/ecoportal/api/graphql/fragment/pages/common_page_union.rb +395 -0
- data/lib/ecoportal/api/graphql/fragment/pages.rb +15 -0
- data/lib/ecoportal/api/graphql/fragment/pages_workflow.rb +172 -0
- data/lib/ecoportal/api/graphql/fragment/pagination.rb +1 -1
- data/lib/ecoportal/api/graphql/fragment.rb +37 -27
- data/lib/ecoportal/api/graphql/input/contractor_entity/update.rb +25 -0
- data/lib/ecoportal/api/graphql/input/delta_input.rb +16 -0
- data/lib/ecoportal/api/graphql/input/page/archive.rb +14 -0
- data/lib/ecoportal/api/graphql/input/page/build_from_template.rb +13 -0
- data/lib/ecoportal/api/graphql/input/page/create_draft.rb +13 -0
- data/lib/ecoportal/api/graphql/input/page/create_from_template.rb +18 -0
- data/lib/ecoportal/api/graphql/input/page/delete_draft.rb +13 -0
- data/lib/ecoportal/api/graphql/input/page/publish_draft.rb +13 -0
- data/lib/ecoportal/api/graphql/input/page/review_task.rb +14 -0
- data/lib/ecoportal/api/graphql/input/page/unarchive.rb +14 -0
- data/lib/ecoportal/api/graphql/input/page/update.rb +140 -0
- data/lib/ecoportal/api/graphql/input/page.rb +26 -0
- data/lib/ecoportal/api/graphql/input/preset_view/create.rb +18 -0
- data/lib/ecoportal/api/graphql/input/preset_view/permission.rb +16 -0
- data/lib/ecoportal/api/graphql/input/preset_view/update.rb +16 -0
- data/lib/ecoportal/api/graphql/input/preset_view.rb +14 -0
- data/lib/ecoportal/api/graphql/input/register/create.rb +18 -0
- data/lib/ecoportal/api/graphql/input/register/update.rb +15 -0
- data/lib/ecoportal/api/graphql/input/register.rb +13 -0
- data/lib/ecoportal/api/graphql/input/search_conf/ai_generator.rb +234 -0
- data/lib/ecoportal/api/graphql/input/search_conf.rb +367 -0
- data/lib/ecoportal/api/graphql/input/variable_binding.rb +20 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_action_tag.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_binding.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_comment_tagging_user_group.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_default_direct_strategy_user.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_default_strategy.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_direct_strategy_user.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_field.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_force.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_gauge_field_stop.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_field_config.rb +23 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_helper.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_operation.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_direct_strategy_user.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_strategy.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_action_type.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_filter.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_people_field.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_task_config.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_user.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback.rb +23 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback_action.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_section.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_select_field_option.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_stage.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_section.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_tag.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_strategy.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_task.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_task_assignment_user_group.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_workflow_callback.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/collapse_section.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_binding.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_creator_permissions.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_default_strategy.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +21 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_force.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_gauge_field_stop.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_field_config.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_helper.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation_strategy.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_page.rb +28 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_page_creator_permissions.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_reminder.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_required_sign_offs.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_comment_tagging.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_task_assignment.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_scheduled_callback.rb +22 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_section_header.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_select_field_option.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_stage.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_strategy.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_task_due.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_trigger.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/expand_section.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/contractor_entities.rb +24 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +23 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/date.rb +20 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/gauge.rb +20 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/image_gallery.rb +20 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/location_field.rb +24 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/people.rb +24 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +20 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/rich_text.rb +20 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb +20 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/signature.rb +20 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/table.rb +25 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/move_field.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/move_stage.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_action_tag.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_binding.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_callback.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_comment_tagging_user_group.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_direct_strategy_user.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_strategy.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_direct_strategy_user.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_field.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_force.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_gauge_field_stop.rb +17 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_linked_field_config.rb +17 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_linked_helper.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_direct_strategy_user.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_strategy.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_action_type.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_filter.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_people_field.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_task_config.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_user.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_scheduled_callback.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_section.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_select_field_option.rb +17 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_section.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_tag.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_strategy.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_task.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_assignment_user_group.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_due.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_priority_level.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/reorder_forces.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/reorder_section.rb +18 -0
- data/lib/ecoportal/api/graphql/input/workflow_command.rb +251 -0
- data/lib/ecoportal/api/graphql/input.rb +8 -0
- data/lib/ecoportal/api/graphql/interface/base_page.rb +100 -58
- data/lib/ecoportal/api/graphql/interface/location_structure/nodes.rb +27 -28
- data/lib/ecoportal/api/graphql/logic/base_model.rb +2 -0
- data/lib/ecoportal/api/graphql/logic/base_query.rb +45 -2
- data/lib/ecoportal/api/graphql/logic/input.rb +15 -0
- data/lib/ecoportal/api/graphql/model/ai_summary_version.rb +10 -0
- data/lib/ecoportal/api/graphql/model/organization.rb +65 -55
- data/lib/ecoportal/api/graphql/model/page/basic.rb +14 -0
- data/lib/ecoportal/api/graphql/model/page/phased.rb +82 -20
- data/lib/ecoportal/api/graphql/model/page.rb +1 -0
- data/lib/ecoportal/api/graphql/model/page_union.rb +21 -0
- data/lib/ecoportal/api/graphql/model/pages_workflow.rb +20 -0
- data/lib/ecoportal/api/graphql/model/preset_view.rb +10 -0
- data/lib/ecoportal/api/graphql/model/preview_page.rb +10 -0
- data/lib/ecoportal/api/graphql/model/register.rb +10 -0
- data/lib/ecoportal/api/graphql/model.rb +8 -0
- data/lib/ecoportal/api/graphql/mutation/ai_summary/generate.rb +45 -0
- data/lib/ecoportal/api/graphql/mutation/ai_summary/submit_feedback.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/ai_summary.rb +13 -0
- data/lib/ecoportal/api/graphql/mutation/kickstand/bulk_update_jobs.rb +43 -0
- data/lib/ecoportal/api/graphql/mutation/kickstand/bulk_update_workflows.rb +43 -0
- data/lib/ecoportal/api/graphql/mutation/kickstand/fail_job.rb +39 -0
- data/lib/ecoportal/api/graphql/mutation/kickstand/fail_workflow.rb +39 -0
- data/lib/ecoportal/api/graphql/mutation/kickstand/start_job.rb +39 -0
- data/lib/ecoportal/api/graphql/mutation/kickstand/start_workflow.rb +39 -0
- data/lib/ecoportal/api/graphql/mutation/kickstand/stop_workflow.rb +39 -0
- data/lib/ecoportal/api/graphql/mutation/kickstand.rb +18 -0
- data/lib/ecoportal/api/graphql/mutation/location_structure/apply_commands.rb +3 -3
- data/lib/ecoportal/api/graphql/mutation/location_structure/draft/add_commands.rb +2 -2
- data/lib/ecoportal/api/graphql/mutation/location_structure/draft/create.rb +2 -2
- data/lib/ecoportal/api/graphql/mutation/location_structure/draft/drop_bad_commands.rb +3 -3
- data/lib/ecoportal/api/graphql/mutation/location_structure/draft/publish.rb +3 -3
- data/lib/ecoportal/api/graphql/mutation/page/approve_review_task.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/archive.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/batch_update_review_task.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/build_from_template.rb +50 -0
- data/lib/ecoportal/api/graphql/mutation/page/create_draft.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/create_from_template.rb +43 -0
- data/lib/ecoportal/api/graphql/mutation/page/delete_draft.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/execute_force_commands.rb +69 -0
- data/lib/ecoportal/api/graphql/mutation/page/execute_workflow_commands.rb +51 -0
- data/lib/ecoportal/api/graphql/mutation/page/publish_draft.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/reject_review_task.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/restart_review_task.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/unarchive.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/undo_review_task.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/update.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/page/update_variable_bindings.rb +44 -0
- data/lib/ecoportal/api/graphql/mutation/page.rb +28 -0
- data/lib/ecoportal/api/graphql/mutation/preset_view/create.rb +35 -0
- data/lib/ecoportal/api/graphql/mutation/preset_view/destroy.rb +35 -0
- data/lib/ecoportal/api/graphql/mutation/preset_view/permission.rb +37 -0
- data/lib/ecoportal/api/graphql/mutation/preset_view/update.rb +35 -0
- data/lib/ecoportal/api/graphql/mutation/preset_view.rb +15 -0
- data/lib/ecoportal/api/graphql/mutation/register/create.rb +35 -0
- data/lib/ecoportal/api/graphql/mutation/register/destroy.rb +35 -0
- data/lib/ecoportal/api/graphql/mutation/register/update.rb +35 -0
- data/lib/ecoportal/api/graphql/mutation/register.rb +14 -0
- data/lib/ecoportal/api/graphql/mutation/smart_fill/generate.rb +36 -0
- data/lib/ecoportal/api/graphql/mutation/smart_fill/submit_feedback.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/smart_fill.rb +13 -0
- data/lib/ecoportal/api/graphql/mutation/template/create.rb +39 -0
- data/lib/ecoportal/api/graphql/mutation/template/create_related_page.rb +46 -0
- data/lib/ecoportal/api/graphql/mutation/template/destroy_related_page.rb +43 -0
- data/lib/ecoportal/api/graphql/mutation/template/publish.rb +39 -0
- data/lib/ecoportal/api/graphql/mutation/template/unpublish.rb +39 -0
- data/lib/ecoportal/api/graphql/mutation/template/update.rb +43 -0
- data/lib/ecoportal/api/graphql/mutation/template/update_information.rb +43 -0
- data/lib/ecoportal/api/graphql/mutation/template.rb +18 -0
- data/lib/ecoportal/api/graphql/mutation.rb +8 -0
- data/lib/ecoportal/api/graphql/payload/ai_summary_generate.rb +12 -0
- data/lib/ecoportal/api/graphql/payload/execute_workflow_commands.rb +36 -0
- data/lib/ecoportal/api/graphql/payload/force_commands.rb +31 -0
- data/lib/ecoportal/api/graphql/payload/kickstand/bulk_update_jobs.rb +36 -0
- data/lib/ecoportal/api/graphql/payload/kickstand/bulk_update_workflows.rb +36 -0
- data/lib/ecoportal/api/graphql/payload/kickstand/job.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/kickstand/workflow.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/kickstand.rb +15 -0
- data/lib/ecoportal/api/graphql/payload/location_structure/draft/create.rb +33 -34
- data/lib/ecoportal/api/graphql/payload/ok_payload.rb +21 -0
- data/lib/ecoportal/api/graphql/payload/page/archive.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/page/build_from_template.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/page/create_from_template.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/page/draft.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/page/review_task.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/page/unarchive.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/page/update.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/page/update_variable_bindings.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/page.rb +19 -0
- data/lib/ecoportal/api/graphql/payload/preset_view.rb +11 -0
- data/lib/ecoportal/api/graphql/payload/register.rb +11 -0
- data/lib/ecoportal/api/graphql/payload/template/create.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/template/create_related_page.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/template/destroy_related_page.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/template/publish.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/template/unpublish.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/template/update.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/template/update_information.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/template.rb +18 -0
- data/lib/ecoportal/api/graphql/payload.rb +11 -0
- data/lib/ecoportal/api/graphql/query/action.rb +1 -1
- data/lib/ecoportal/api/graphql/query/action_categories.rb +1 -1
- data/lib/ecoportal/api/graphql/query/actions.rb +2 -2
- data/lib/ecoportal/api/graphql/query/contractor_entities.rb +1 -1
- data/lib/ecoportal/api/graphql/query/file_upload_signature.rb +76 -0
- data/lib/ecoportal/api/graphql/query/location_structure/draft.rb +2 -2
- data/lib/ecoportal/api/graphql/query/location_structure.rb +1 -1
- data/lib/ecoportal/api/graphql/query/location_structures.rb +1 -1
- data/lib/ecoportal/api/graphql/query/page.rb +45 -0
- data/lib/ecoportal/api/graphql/query/page_delta.rb +47 -0
- data/lib/ecoportal/api/graphql/query/page_with_forces.rb +43 -0
- data/lib/ecoportal/api/graphql/query/pages.rb +59 -0
- data/lib/ecoportal/api/graphql/query/pages_workflow_commands.rb +59 -0
- data/lib/ecoportal/api/graphql/query/register_preset_views.rb +78 -0
- data/lib/ecoportal/api/graphql/query/register_preview_pages.rb +83 -0
- data/lib/ecoportal/api/graphql/query/templates.rb +53 -0
- data/lib/ecoportal/api/graphql/query.rb +11 -0
- data/lib/ecoportal/api/graphql.rb +60 -2
- data/lib/ecoportal/api/graphql_version.rb +5 -5
- data/scripts/auto-worker-scheduler.sh +386 -0
- data/tests/contractor_entity_create.rb +19 -19
- data/tests/contractor_entity_udpate.rb +20 -20
- data/tests/dump_page_model.rb +74 -0
- data/tests/loc_structure_get.rb +1 -2
- data/tests/loc_structure_update.rb +51 -51
- data/tests/loc_structures_get.rb +15 -15
- metadata +436 -5
data/CHANGELOG.md
CHANGED
|
@@ -1,477 +1,673 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
## [1.3.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
###
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
- `
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
- `
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
- `
|
|
68
|
-
- `
|
|
69
|
-
|
|
70
|
-
- `
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
- `
|
|
78
|
-
|
|
79
|
-
-
|
|
80
|
-
- `Mutation`
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- `
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
117
|
-
- `
|
|
118
|
-
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
- `
|
|
131
|
-
-
|
|
132
|
-
|
|
133
|
-
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
###
|
|
139
|
-
|
|
140
|
-
- `
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
## [
|
|
167
|
-
|
|
168
|
-
###
|
|
169
|
-
|
|
170
|
-
-
|
|
171
|
-
|
|
172
|
-
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
-
|
|
185
|
-
- `ecoportal-api`
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
-
|
|
257
|
-
|
|
258
|
-
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
- `
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
-
|
|
298
|
-
-
|
|
299
|
-
|
|
300
|
-
## [
|
|
301
|
-
|
|
302
|
-
###
|
|
303
|
-
|
|
304
|
-
-
|
|
305
|
-
- `
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
###
|
|
325
|
-
|
|
326
|
-
- `
|
|
327
|
-
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
-
|
|
394
|
-
|
|
395
|
-
###
|
|
396
|
-
|
|
397
|
-
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
-
|
|
417
|
-
|
|
418
|
-
###
|
|
419
|
-
|
|
420
|
-
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
-
|
|
435
|
-
|
|
436
|
-
## [0.
|
|
437
|
-
|
|
438
|
-
###
|
|
439
|
-
|
|
440
|
-
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
###
|
|
445
|
-
|
|
446
|
-
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [1.3.9] - 2026-07-02
|
|
6
|
+
|
|
7
|
+
APIv2→GraphQL cutover hardening (backwards-compatible). Live-validated on the maintained ooze
|
|
8
|
+
integrations (toocs-coding, cans-upsert).
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Faithful dry-run body** — `Compat::Pages#get_body` returns the SAME input `#update`/`#create`
|
|
13
|
+
would send (under the `'page'` key), incl. `dataFields.updates` (invisible to `page.as_update`
|
|
14
|
+
on phased pages). Create previews render as `CreateFromTemplateInput` (marker-based
|
|
15
|
+
`#new_draft?`) instead of mislabelling as updates.
|
|
16
|
+
- **Stage submit/sign-off carries `stageId`** — `Input::Page::Update.from_model` raises if a
|
|
17
|
+
submit/task is requested without a stage; `Compat::StageView` records the viewed stage on the
|
|
18
|
+
page; `compat_stage_id` resolves pinned → active(stage-view) → current. People-field
|
|
19
|
+
permissions are stage-scoped, so a submit must name its stage.
|
|
20
|
+
- **`CrossReference#dirty?`** compares the reference-id SET vs `original_doc` — no phantom
|
|
21
|
+
`referenceIds: []` clears (empty→empty / same→same is not dirty).
|
|
22
|
+
- **`Number`/`Gauge` blank → nil, never `0.0`** — an empty CSV cell no longer coerces to a real
|
|
23
|
+
zero. Shared `DataField#numeric_or_nil`.
|
|
24
|
+
- **`People` reader** falls back to the `people{id}` nodes when `peopleIds` is blank — an append
|
|
25
|
+
can't wipe existing people.
|
|
26
|
+
- **`Compat::Pages#create` resolves `templateId` from the get_new marker**
|
|
27
|
+
(`_compat_source_template_id`), matching the dry-run — fixes a live `templateId: null` failure.
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- **Exact-match register filter** — `Compat::FilterTranslator` maps a v2 `type: 'exact_filter'`
|
|
32
|
+
(alias `'is_filter'`) → GraphQL `is_filter` (whole-value equality on a field's `.exact` keyword
|
|
33
|
+
subfield), deriving the `membranes.<type>` path. Fixes exact-id existence checks (partial
|
|
34
|
+
`match_filter` missed exact SKUs → duplicate pages). Note: case-insensitive, first-64-chars.
|
|
35
|
+
- **`Builder::Page#archive(clear_external_id:)`** — optionally blanks `externalId` (a separate
|
|
36
|
+
`updatePage`) before archiving, for cleanup of a failed/duplicate creation; default `false`
|
|
37
|
+
keeps it. externalId is the per-org, per-model integration pairing key.
|
|
38
|
+
|
|
39
|
+
## [1.3.8] - 2026-06-12
|
|
40
|
+
|
|
41
|
+
### Added
|
|
42
|
+
|
|
43
|
+
- **Template mutations** — full lifecycle for creating and updating workflow templates:
|
|
44
|
+
- `Mutation::Template::{Create,Update}` — `createPageTemplate` / `updatePageTemplate` (both accept `WorkflowCommandInput` command bus)
|
|
45
|
+
- `Mutation::Template::{Publish,Unpublish}` — `publishTemplate` / `unpublishTemplate`
|
|
46
|
+
- `Mutation::Template::UpdateInformation` — update template `description`, `aiDescription`, `templateType`
|
|
47
|
+
- `Mutation::Template::{CreateRelatedPage,DestroyRelatedPage}` — manage template related-pages
|
|
48
|
+
- `Builder::Template` wired as `api.template`
|
|
49
|
+
- **`updateVariableBindings`** — `Mutation::Page::UpdateVariableBindings` maps named force variable slots to data field IDs on a page; `Input::VariableBinding` value object
|
|
50
|
+
- **Kickstand job mutations** — `Mutation::Kickstand::{StartJob,FailJob,BulkUpdateJobs}`; `Builder::Kickstand` extended with `start_job`, `fail_job`, `bulk_update_jobs`
|
|
51
|
+
|
|
52
|
+
## [1.3.7] - 2026-06-12
|
|
53
|
+
|
|
54
|
+
### Added
|
|
55
|
+
|
|
56
|
+
- **PagesWorkflow space (W1–W5)**
|
|
57
|
+
- `Base::PagesWorkflow` + sub-model tree (`pages_workflow/`): `RegisterField`, `CallbackType`,
|
|
58
|
+
`OperationInterface`, `TriggerInterface`, and supporting types — read model for the
|
|
59
|
+
page-workflow configuration (`autoPageCreationEnabled`, `fields`, `stages`).
|
|
60
|
+
- `Model::PagesWorkflow` with class resolver.
|
|
61
|
+
- **Workflow command bus**: `Input::WorkflowCommandInput` covering ~80 command types under
|
|
62
|
+
`input/workflow_command/`. `Mutation::Page::ExecuteWorkflowCommands` +
|
|
63
|
+
`Payload::ExecuteWorkflowCommands`.
|
|
64
|
+
- Workflow fragments registered for assembly.
|
|
65
|
+
- _Note: the workflow command surface is volatile upstream — designed to absorb change._
|
|
66
|
+
- **Force model / ForceCompat**
|
|
67
|
+
- `Base::Force` (+ `force/` sub-models), Force fragment.
|
|
68
|
+
- `Mutation::Page::ExecuteForceCommands`, `Payload::ForceCommands`, `Query::PageWithForces`.
|
|
69
|
+
- **DataField type hierarchy (Phase E)**
|
|
70
|
+
- Full set of typed `Base::Page::DataField` subclasses: `PlainText`, `RichText`, `DateField`,
|
|
71
|
+
`Number`, `Gauge`, `People`, `Select`, `Checklist`, `TagField`, `Geo`, `Signature`,
|
|
72
|
+
`ContractorEntities`, `CrossReference`, `ImageGallery`, `FileField`, `Mailbox`,
|
|
73
|
+
`ActionsList`, `Law`, `AiSummary`, `Table`, `SmartFill`, dispatched via `TYPE_MAP`/`from_doc`.
|
|
74
|
+
- `DataField::Collection` — `dirty_inputs`, `dirty_additions`, `dirty_deletions`,
|
|
75
|
+
`add`, `mark_for_deletion`.
|
|
76
|
+
- **Register builder & models**
|
|
77
|
+
- `Builder::Register` (+ `register/preset_view`), `Model::Register`,
|
|
78
|
+
`Mutation::Register` (`create`/`update`/`destroy`), `Input::Register`, `Payload::Register`.
|
|
79
|
+
- **Preset views**
|
|
80
|
+
- `Model::PresetView`, `Mutation::PresetView` (`create`/`update`/`destroy`/`permission`),
|
|
81
|
+
`Query::RegisterPresetViews`, `Input::PresetView`, `Payload::PresetView`.
|
|
82
|
+
- **AI mutations**
|
|
83
|
+
- `Mutation::SmartFill` (`generate`/`submit_feedback`).
|
|
84
|
+
- `Mutation::AiSummary` (`generate`/`submit_feedback`), `Model::AiSummaryVersion`,
|
|
85
|
+
`Payload::AiSummaryGenerate`.
|
|
86
|
+
- **Review task & draft lifecycle mutations**
|
|
87
|
+
- Review tasks: `approve`/`reject`/`restart`/`undo`/`batch_update` (`Mutation::Page::*ReviewTask`),
|
|
88
|
+
`Payload::Page::ReviewTask`.
|
|
89
|
+
- Drafts: `Mutation::Page::CreateDraft`/`PublishDraft`/`DeleteDraft`, `Payload::Page::Draft`.
|
|
90
|
+
- Templates: `Mutation::Page::BuildFromTemplate`/`CreateFromTemplate` + payloads.
|
|
91
|
+
- **Queries**
|
|
92
|
+
- `Query::PageDelta` (+ `Base::DeltaResult`, `Input::DeltaInput`).
|
|
93
|
+
- `Query::RegisterPreviewPages` (+ `Base::PreviewPage`).
|
|
94
|
+
- `Query::FileUploadSignature` + file-upload helper.
|
|
95
|
+
- **`Input::SearchConf`** — fluent/chainable filter DSL and `SearchConf.from_description`
|
|
96
|
+
(AI-assisted filter generation from natural language).
|
|
97
|
+
- **Compat layer for `eco-helpers`** — `Compat::Pages` (`#each` cursor-paginated full iteration),
|
|
98
|
+
`Compat::Registers`, `Compat::FilterTranslator`, `Compat::PageReference`,
|
|
99
|
+
`Compat::StageCollection`, `Compat::StageView`, `Compat::SearchResults`, `Compat::Response`.
|
|
100
|
+
- **Concerns** — `SnakeCamelAccess` (camelCase→snake_case delegation), `DataFieldAccess`,
|
|
101
|
+
`PageCompat`, `Deprecation`.
|
|
102
|
+
- `Payload::OkPayload` base payload.
|
|
103
|
+
- **Page read layer (Phase A)**
|
|
104
|
+
- `Fragment::PageFields` — named fragment on `BasePageInterface` covering identity, state,
|
|
105
|
+
lifecycle, and location fields. Includes `__typename` for union dispatch.
|
|
106
|
+
- `Interface::BasePage` — added `passboolean :draft` and `passthrough :externalId`.
|
|
107
|
+
- `Base::Page::Basic < Interface::BasePage` — concrete basic page class.
|
|
108
|
+
- `Base::Page::Phased` — `passarray :stages` (raw array until typed in Phase C).
|
|
109
|
+
- `Model::Page::Basic`, `Model::Page::Phased` — concrete model classes with class resolvers.
|
|
110
|
+
- `Model::PageUnion` — factory module: dispatches `.new(doc)` to `Basic` or `Phased`
|
|
111
|
+
based on `__typename`. Used as `item_class` / `node_class` throughout.
|
|
112
|
+
- `Connection::Page < Logic::Connection` — paginated page connection with `PageUnion` nodes.
|
|
113
|
+
- `Query::Page` (single page by ID), `Query::Pages` (paginated list), `Query::Templates`.
|
|
114
|
+
- `Model::Organization` — wired `query :page`, `query :pages`, `query :templates`.
|
|
115
|
+
- **Page write layer (Phase B)**
|
|
116
|
+
- `Input::Page` — maps `PageInput` fields; owns `PAGE_FIELD_KEYS` as single source of truth.
|
|
117
|
+
- `Input::Page::Update` — maps `UpdatePageInput`; `from_model` builds the nested `page:`
|
|
118
|
+
sub-hash and always injects `patchVer` (a current `patchVer` must be fetched before update).
|
|
119
|
+
- `Input::Page::Archive`, `Input::Page::Unarchive`.
|
|
120
|
+
- `Mutation::Page::Update`/`Archive`/`Unarchive`, `Payload::Page::Update`/`Archive`/`Unarchive`
|
|
121
|
+
(all return a `PageUnion` item), `Builder::Page` (`update`/`archive`/`unarchive`),
|
|
122
|
+
`Ecoportal::API::GraphQL#page` top-level accessor.
|
|
123
|
+
- **Fragment infrastructure**
|
|
124
|
+
- `Fragment::Pages` sub-namespace with `CommonPageUnion` — customer-facing fragment covering
|
|
125
|
+
stages, sections, all 20 data field types, actions, files, and emails. Parametric via
|
|
126
|
+
`$content`, `$only_content`, `$fields`.
|
|
127
|
+
- `FragmentDefinitions.register_namespace(klass)` — cross-namespace fragment discovery without
|
|
128
|
+
polluting the parent `fragments` hash.
|
|
129
|
+
- `BaseQuery#assemble_fragments` — resolves fragment spreads **recursively** (cycle-safe).
|
|
130
|
+
- **`as_input` / diff pipeline**
|
|
131
|
+
- `Common::GraphQL::Model::AsInput#as_input(target_class:)` — delegates to a specified
|
|
132
|
+
`Input` subclass for field reshaping (e.g. `IdDiffInput` for array fields).
|
|
133
|
+
- `Logic::Input.from_model` — builds mutation input from a model diff; injects `patchVer`
|
|
134
|
+
and `clientMutationId`.
|
|
135
|
+
- `Input::ContractorEntity::Update.from_model` — reshapes array fields
|
|
136
|
+
(`associatedPeopleIds`, `leadContractorIds`) into `IdDiffInput` format.
|
|
137
|
+
|
|
138
|
+
### Changed
|
|
139
|
+
|
|
140
|
+
- **`Gemfile`** — override `graphlient` with the fork branch (GraphQL directives support).
|
|
141
|
+
- **DataField dirty detection** — removed the per-field `@_dirty` flag in favour of
|
|
142
|
+
diff-based detection. `DataField` now uses a leaf-specific `DIFF_CLASS` (`LeafDiffService`)
|
|
143
|
+
so its `passarray` attributes are diffed inline instead of being stripped as cascaded keys.
|
|
144
|
+
- **AI generator** — compatibility with the Anthropic Ruby SDK 1.x.
|
|
145
|
+
|
|
146
|
+
### Fixed
|
|
147
|
+
|
|
148
|
+
- **DataField array fields** (`Select`, `People`, `Checklist`, `ContractorEntities`,
|
|
149
|
+
`CrossReference`, `FileField`, `ImageGallery`) — were never reported dirty after a setter,
|
|
150
|
+
so `as_input` returned `nil`. `passarray` keys are *cascaded* attributes and the flat classic
|
|
151
|
+
diff strips them, expecting `diff_reduce` to re-add them by cascading into nested
|
|
152
|
+
`GraphQL::Model` children — but leaf-field arrays are plain hashes/strings, so they vanished.
|
|
153
|
+
Fixed with `DataField::LeafDiffService` (keeps cascaded keys) and by adding the missing
|
|
154
|
+
`array_ids` / `array_id_index` / `array_id_item` helpers to `HashDiffNesting`.
|
|
155
|
+
- **Live AI specs** — resilient to SSL / auth failures in offline environments (skip instead of error).
|
|
156
|
+
- **`HashDiffNesting#dig_path?`** — corrected to use `Hash#key?` rather than `respond_to?(:[])`,
|
|
157
|
+
preventing false positives on non-Hash objects.
|
|
158
|
+
- **`DiffService#classic_diff`** — now returns a flat changed-prop hash (no `api_operation` /
|
|
159
|
+
`change_data` wrapper keys). `as_input` / `as_update` return `nil` when there are no changes.
|
|
160
|
+
- **`assemble_fragments`** — fixed silent bug where a fragment referencing another fragment
|
|
161
|
+
(e.g. `PageFields → ...LocationNode`) would omit the referenced fragment from the query,
|
|
162
|
+
causing a server-side `unknown fragment` error.
|
|
163
|
+
- **`Fragment.assemble`** — fixed silent bug where fragments defined in sub-namespaces
|
|
164
|
+
(e.g. `Fragment::Pages`) were never found, always returning empty.
|
|
165
|
+
|
|
166
|
+
## [1.3.6] - 2026-06-05
|
|
167
|
+
|
|
168
|
+
### Added
|
|
169
|
+
|
|
170
|
+
- **`HttpClient#execute`**: new HTTP dispatch method — POSTs `{ query, variables, operationName }` as
|
|
171
|
+
JSON to `/api/:org_id/graphql` and returns the parsed response hash.
|
|
172
|
+
- **`Common::GraphQL::ResponseError`**: typed exception raised when the GraphQL response body
|
|
173
|
+
contains an `errors` array.
|
|
174
|
+
- **`Fragment.assemble(*syms)`**: class method that returns concatenated named fragment definition
|
|
175
|
+
strings for the given symbols, ready to append to a query document before dispatch.
|
|
176
|
+
- **`Graphlient::Query#spread(name)`** _(graphlient fork)_: DSL helper that emits `...FragmentName`
|
|
177
|
+
in the query string. Replaces the `___Const` convention from graphql-client.
|
|
178
|
+
- **`Client#to_query_string(&block)`** _(graphlient fork)_: builds a full GraphQL query document
|
|
179
|
+
from the DSL block and returns a `String` without touching Faraday or HTTP.
|
|
180
|
+
|
|
181
|
+
### Changed
|
|
182
|
+
|
|
183
|
+
- upgraded ecoportal upstream **gem** dependencies:
|
|
184
|
+
- `ecoportal-api`
|
|
185
|
+
- `ecoportal-api-v2`
|
|
186
|
+
- **`BaseQuery#graphql_query`**: wired to the new dispatch path — builds query string via
|
|
187
|
+
`client.to_query_string`, appends needed named fragment strings, dispatches via
|
|
188
|
+
`client.http_client.execute`. Removes the graphql-client/Faraday dispatch path.
|
|
189
|
+
- **`Common::GraphQL::Client`**: added `attr_accessor :http_client` to carry the HTTP dispatch
|
|
190
|
+
client alongside the DSL client.
|
|
191
|
+
- **`Ecoportal::API::GraphQL#initialize`**: constructs and attaches a `Common::GraphQL::HttpClient`
|
|
192
|
+
instance to `@client.http_client`.
|
|
193
|
+
- **Fragment strings**: all 7 fragment heredocs updated to use named fragment syntax
|
|
194
|
+
(e.g. `fragment Action on Action { ... }`), required for `Fragment.assemble` to emit
|
|
195
|
+
valid named fragment definitions.
|
|
196
|
+
- **`FragmentDefinitions`**: stripped of `client.parse` and `namespace.const_set` — fragment
|
|
197
|
+
strings are now stored as plain Ruby strings. No longer depends on graphql-client for
|
|
198
|
+
fragment loading.
|
|
199
|
+
- **Query/mutation blocks** (12 files): replaced `___Ecoportal__API__GraphQL__Fragment__X`
|
|
200
|
+
spread syntax with `spread :X` throughout all `default_block` and `default_payload_block` procs.
|
|
201
|
+
|
|
202
|
+
### Fixed
|
|
203
|
+
|
|
204
|
+
- **`HttpClient#base_request`**: added `request ||= HTTP` guard for the unmatched `@version` case
|
|
205
|
+
to prevent nil errors.
|
|
206
|
+
- **`HttpClient#api_url`**: use `ENDPOINT_PATH` constant (`external/graphql`) consistently
|
|
207
|
+
instead of an inline hardcoded string.
|
|
208
|
+
|
|
209
|
+
## [1.3.5] - 2026-05-26
|
|
210
|
+
|
|
211
|
+
### Changed
|
|
212
|
+
|
|
213
|
+
- Moved `graphql` endpoint to `external/graphql`
|
|
214
|
+
- Missing env var (i.e. `ORG_ID`) will **raise** now an error (instead of just a print)
|
|
215
|
+
|
|
216
|
+
## [1.3.4] - 2025-09-04
|
|
217
|
+
|
|
218
|
+
### Added
|
|
219
|
+
|
|
220
|
+
- Command execution result: **added** command doc when there's a `results` error.
|
|
221
|
+
- Payload improvements:
|
|
222
|
+
- On `LocationsError.validationErrors`: fetch `property` property.
|
|
223
|
+
- On **results**, `Command` always fetch `__typename` and the other properties.
|
|
224
|
+
|
|
225
|
+
### Changed
|
|
226
|
+
|
|
227
|
+
- Changed base `error_doc`: **consistent property name**
|
|
228
|
+
|
|
229
|
+
### Fixed
|
|
230
|
+
|
|
231
|
+
- Correct fetch on `ok` (sometimes it is `null`: that doesn't mean failed).
|
|
232
|
+
- **Consistent order** on `error?` and `error_doc`.
|
|
233
|
+
- `Draft`
|
|
234
|
+
- **Overlapping** name `ConflictingIds` (vs `LocationsError.conflictingIds`)
|
|
235
|
+
- **Wrong** include on `FetchNested`
|
|
236
|
+
|
|
237
|
+
## [1.3.3] - 2025-08-29
|
|
238
|
+
|
|
239
|
+
### Added
|
|
240
|
+
|
|
241
|
+
- Better error handling
|
|
242
|
+
|
|
243
|
+
### Fixed
|
|
244
|
+
|
|
245
|
+
- Unused parameter/variable `$includeArchivedNodes`
|
|
246
|
+
|
|
247
|
+
## [1.3.2] - 2025-08-19
|
|
248
|
+
|
|
249
|
+
### Added
|
|
250
|
+
|
|
251
|
+
- `Mutation`: allow parameters other than **input**.
|
|
252
|
+
- Location Structure `Draft` models
|
|
253
|
+
- `Interface::LocationStructure::Nodes` for `LocationStructure` and `Draft::Structure`
|
|
254
|
+
- `raw_response` as optional query parameter (for debugging)
|
|
255
|
+
- `Logic::Input` (out of consistency)
|
|
256
|
+
- Fragments:
|
|
257
|
+
- `LocationDraft`
|
|
258
|
+
- `LocationsError`
|
|
259
|
+
- Query to include `draft` list when fetching an **RS**.
|
|
260
|
+
- Location `Draft` queries:
|
|
261
|
+
- `Draft#byId`
|
|
262
|
+
- `Draft#create`
|
|
263
|
+
- `Draft#delete`
|
|
264
|
+
- `Draft#addCommands`
|
|
265
|
+
- `Draft#publish`
|
|
266
|
+
- `Draft#dropBadCommands`
|
|
267
|
+
- Error tracking througout the payload models of location mutations
|
|
268
|
+
|
|
269
|
+
### Changed
|
|
270
|
+
|
|
271
|
+
- Upgrade dependency (`ecoportal-api` **gem**).
|
|
272
|
+
- Moved rescue on fragment definition to `#define` itself.
|
|
273
|
+
- `NodeInterface` moved to `Interface::LocationStructure::Node`
|
|
274
|
+
- Code: Shorten namespace referral.
|
|
275
|
+
- Swap to `Logic::BaseModel`
|
|
276
|
+
- `Mutation` to introduce `:input` required parameter by using parent class.
|
|
277
|
+
|
|
278
|
+
### Fixed
|
|
279
|
+
|
|
280
|
+
- `QueryConnection`: bad code.
|
|
281
|
+
- `conflictingIds` should be array.
|
|
282
|
+
|
|
283
|
+
## [1.3.1] - 2025-06-11
|
|
284
|
+
|
|
285
|
+
### Changed
|
|
286
|
+
|
|
287
|
+
- upgraded gem dependencies
|
|
288
|
+
- **Moded** `Ecoportal::API::GraphQL::Base::Model` to
|
|
289
|
+
- > `Ecoportal::API::GraphQL::BaseModel`
|
|
290
|
+
- **Added** `Interface::LocationNode`
|
|
291
|
+
- **Added** `Interface::BasePage`
|
|
292
|
+
|
|
293
|
+
### Fixed
|
|
294
|
+
|
|
295
|
+
- **Fragments**
|
|
296
|
+
- `Action` fragment to use `PageUnion` (**upgrade**)
|
|
297
|
+
- **Memoize** fragments.
|
|
298
|
+
- Add what fragment failed in the **error**.
|
|
299
|
+
|
|
300
|
+
## [1.2.1] - 2025-05-16
|
|
301
|
+
|
|
302
|
+
### Changed
|
|
303
|
+
|
|
304
|
+
- upgrade `ecoportal-api` gem
|
|
305
|
+
- upgrade `ecoportal-api-v2` gem
|
|
306
|
+
|
|
307
|
+
## [1.1.1] - 2025-05-14
|
|
308
|
+
|
|
309
|
+
### Added
|
|
310
|
+
|
|
311
|
+
- `MemberChanges` helpers for `Base::ContractorEntity`
|
|
312
|
+
- Custom **Diff** logic that can be used in GraphQL content:
|
|
313
|
+
- `Common::GraphQL::Model::Diffable::HashDiffNesting`
|
|
314
|
+
- Reused from `HashDiffPatch` (`ecoportal-api-v2`):
|
|
315
|
+
1. It does not use `patch_ver`, but rather just `id` property alone.
|
|
316
|
+
2. The _operation_ property has been renamed to `api_operation` (to ensure no collisions). And the operation types are symbols, and renamed to: `:delete`, `:update` and `:create`. This can show up to be useful when, for instance, reusing the output of `#as_update` to generate actual input objects (i.e. `#as_input`) that feed some GraphQL query.
|
|
317
|
+
3. The _data_ property has been renamed to `change_data`.
|
|
318
|
+
4. `Hash` **keys** are of type `Symbol`.
|
|
319
|
+
- `Common::GraphQL::Model::Diffable::DiffService`. In a GraphQL context, this aims to be able to implement a function called `#as_input` (equivalent to `#as_update`):
|
|
320
|
+
1. It uses the `HashDiffNesting` helpers.
|
|
321
|
+
2. It has capability to `ignore` certain keys.
|
|
322
|
+
3. It can calculate **diff** excluding nested models (i.e. those that are `root?` and, therefore, not part of the changed target model). This functionality is an optimization to `cascaded_callbacks` throughout the nested models.
|
|
323
|
+
|
|
324
|
+
### Changed
|
|
325
|
+
|
|
326
|
+
- `Common::GraphQL::Model::Diffable` by using `Diffable::DiffService` (with `cascaded_callbacks` implementation).
|
|
327
|
+
- `#as_update`
|
|
328
|
+
- `#dirty?`
|
|
329
|
+
- upgraded `ecoportal-api` gem
|
|
330
|
+
- updraded `ecoportal-api-v2` gem
|
|
331
|
+
|
|
332
|
+
## [0.4.7] - 2025-04-02
|
|
333
|
+
|
|
334
|
+
### Added
|
|
335
|
+
|
|
336
|
+
- `page.id` to Action linked resources.
|
|
337
|
+
|
|
338
|
+
## [0.4.6] - 2025-04-02
|
|
339
|
+
|
|
340
|
+
### Added
|
|
341
|
+
|
|
342
|
+
- `Ecoportal::API::GraphQL::Logic::QueryConnection`
|
|
343
|
+
- **Require** `default_connection_block` to child classes
|
|
344
|
+
- This aims to **not** having have client code having to define the block for `#each`
|
|
345
|
+
|
|
346
|
+
### Changed
|
|
347
|
+
|
|
348
|
+
- upgraded `ecoportal-api` gem
|
|
349
|
+
- upgraded `ecoportal-api-v2` gem
|
|
350
|
+
|
|
351
|
+
## [0.4.5] - 2025-03-14
|
|
352
|
+
|
|
353
|
+
### Added
|
|
354
|
+
|
|
355
|
+
- Query `actionCategories`
|
|
356
|
+
- Mutation **create** `Action`
|
|
357
|
+
|
|
358
|
+
### Changed
|
|
359
|
+
|
|
360
|
+
- `Action` model to have `locations` (**RS** upgrade)
|
|
361
|
+
|
|
362
|
+
## [0.4.4] - 2025-02-23
|
|
363
|
+
|
|
364
|
+
### Changed
|
|
365
|
+
|
|
366
|
+
- Upgraded `ecoportal-api` gem (maintanance)
|
|
367
|
+
- Upgraded `ecoportal-api-v2` gem (to provision `root!` class method)
|
|
368
|
+
- Defined some models that hand on their own as `root!`
|
|
369
|
+
- Refactored `Base::Model` by moving its loggic to `Common::GraphQL`
|
|
370
|
+
|
|
371
|
+
### Fixed
|
|
372
|
+
|
|
373
|
+
- `Ecoportal::API::Common::GraphQL::HashHelpers`
|
|
374
|
+
- Truly make the iterator generic
|
|
375
|
+
|
|
376
|
+
## [0.4.3] - 2024-11-21
|
|
377
|
+
|
|
378
|
+
### Changed
|
|
379
|
+
|
|
380
|
+
- upgrade gems
|
|
381
|
+
- `ecoportal-api`
|
|
382
|
+
- `ecoportal-api-v2`
|
|
383
|
+
- `Ecoportal::API::Common::GraphQL::HttpClient.new` ceased to default `version` to `v1` (now it defaults to `nil`)
|
|
384
|
+
|
|
385
|
+
## [0.4.2] - 2024-10-01
|
|
386
|
+
|
|
387
|
+
### Changed
|
|
388
|
+
|
|
389
|
+
- upgrade gems
|
|
390
|
+
- `ecoportal-api-v2`
|
|
391
|
+
- add explicit dependency onto `ecoportal-api` gem (client)
|
|
392
|
+
|
|
393
|
+
## [0.4.1] - 2024-08-09
|
|
394
|
+
|
|
395
|
+
### Added
|
|
396
|
+
|
|
397
|
+
- `ContractorEntity` added field `externalId`
|
|
398
|
+
|
|
399
|
+
### Changed
|
|
400
|
+
|
|
401
|
+
- gem upgrade `ecoportal-api-v2`
|
|
402
|
+
|
|
403
|
+
## [0.4.0] - 2024-08-01
|
|
404
|
+
|
|
405
|
+
### Changed
|
|
406
|
+
|
|
407
|
+
- require `ruby 3`
|
|
408
|
+
|
|
409
|
+
## [0.3.18] - 2024-05-16
|
|
410
|
+
|
|
411
|
+
### Fixed
|
|
412
|
+
|
|
413
|
+
- `Ecoportal::API::GraphQL::Payload::LocationStructure::CommandExecutionResult`
|
|
414
|
+
- Error is nullable
|
|
415
|
+
|
|
416
|
+
## [0.3.17] - 2024-05-14
|
|
417
|
+
|
|
418
|
+
### Fixed
|
|
419
|
+
|
|
420
|
+
- `field_name` should add up to the path
|
|
421
|
+
|
|
422
|
+
## [0.3.16] - 2024-04-29
|
|
423
|
+
|
|
424
|
+
### Added
|
|
425
|
+
|
|
426
|
+
- Exposed `graphql` `ContractorEntity` `destroy`
|
|
427
|
+
|
|
428
|
+
### Fixed
|
|
429
|
+
|
|
430
|
+
- incorrect loading
|
|
431
|
+
|
|
432
|
+
### Changed
|
|
433
|
+
|
|
434
|
+
- Input for ContractorEntity create moved as `update` (as it wasn't correct)
|
|
435
|
+
|
|
436
|
+
## [0.3.15] - 2024-04-13
|
|
437
|
+
|
|
438
|
+
### Added
|
|
439
|
+
|
|
440
|
+
- `Ecoportal::API::GraphQL::Logic::BaseQuery`
|
|
441
|
+
- `::base_path` class instance var.
|
|
442
|
+
- query to retrieve `currentOrganization.classifications`
|
|
443
|
+
|
|
444
|
+
### Fixed
|
|
445
|
+
|
|
446
|
+
- upgraded `ecoportal-api-v2` gem
|
|
447
|
+
|
|
448
|
+
## [0.3.14] - 2024-03-13
|
|
449
|
+
|
|
450
|
+
### Added
|
|
451
|
+
|
|
452
|
+
- some benchmarking on
|
|
453
|
+
1. core graphql base `query`
|
|
454
|
+
- `#parent_id` to location node model
|
|
455
|
+
|
|
456
|
+
### Changed
|
|
457
|
+
|
|
458
|
+
- upgraded `ecoportal-v2-api` gem
|
|
459
|
+
|
|
460
|
+
### Fixed
|
|
461
|
+
|
|
462
|
+
- Optimized `treeify` and locations structure class
|
|
463
|
+
|
|
464
|
+
## [0.3.13] - 2024-02-03
|
|
465
|
+
|
|
466
|
+
### Changed
|
|
467
|
+
|
|
468
|
+
- upgrade `ecoportal-api-v2`
|
|
469
|
+
|
|
470
|
+
## [0.3.12] - 2024-01-27
|
|
471
|
+
|
|
472
|
+
### Added
|
|
473
|
+
|
|
474
|
+
- Exposed `graphql` `Action` `update` and get a single `action`
|
|
475
|
+
|
|
476
|
+
## [0.3.11] - 2023-09-19
|
|
477
|
+
|
|
478
|
+
### Added
|
|
479
|
+
|
|
480
|
+
- Exposed `graphql` `ContractorEntity` `create` and `update`
|
|
481
|
+
|
|
482
|
+
## [0.3.10] - 2023-08-12
|
|
483
|
+
|
|
484
|
+
### Fixed
|
|
485
|
+
|
|
486
|
+
- `Ecopotal::API::GraphQL::Query::LocationStructure`
|
|
487
|
+
- `query` in basic_block missed an explicitly declared parameter.
|
|
488
|
+
|
|
489
|
+
## [0.3.9] - 2023-08-03
|
|
490
|
+
|
|
491
|
+
### Added
|
|
492
|
+
|
|
493
|
+
- `Ecoportal::API::GraphQL::Logic::BaseQuery`
|
|
494
|
+
- Added support for **default** values.
|
|
495
|
+
|
|
496
|
+
## [0.3.8] - 2023-07-18
|
|
497
|
+
|
|
498
|
+
### Added
|
|
499
|
+
|
|
500
|
+
- Integration for archiving actions.
|
|
501
|
+
- `LocationNodeInterface` -> support for `classifications`
|
|
502
|
+
- `Treeify` to dump more data per node (classifications)
|
|
503
|
+
|
|
504
|
+
### Fixed
|
|
505
|
+
|
|
506
|
+
- Silenced waning messages when redefining `Fragment`s
|
|
507
|
+
|
|
508
|
+
## [0.3.7] - 2023-05-23
|
|
509
|
+
|
|
510
|
+
### Fixed
|
|
511
|
+
|
|
512
|
+
- `Ecoportal::API::Common::GraphQL::Client` adjusted `read_timeout` and `write_timeout` to `90` seconds.
|
|
513
|
+
|
|
514
|
+
## [0.3.6] - 2023-04-17
|
|
515
|
+
|
|
516
|
+
### Changed
|
|
517
|
+
|
|
518
|
+
- Softened max version of **gem** dependencies
|
|
519
|
+
|
|
520
|
+
### Fixed
|
|
521
|
+
|
|
522
|
+
- `Ecoportal::API::GraphQL::Fragment#define` was not removing previous constants
|
|
523
|
+
- Changed check method to be `::const_defined?`
|
|
524
|
+
|
|
525
|
+
## [0.3.5] - 2023-04-03
|
|
526
|
+
|
|
527
|
+
### Fixed
|
|
528
|
+
|
|
529
|
+
- `Ecoportal::API::GraphQL::Helpers::LocationsTree#treeify`
|
|
530
|
+
- Make it real id-case-insensitive (parents in lower case were being missed due to this)
|
|
531
|
+
|
|
532
|
+
## [0.3.4] - 2023-04-03
|
|
533
|
+
|
|
534
|
+
### Added
|
|
535
|
+
|
|
536
|
+
- `Ecoportal::API::Common::GraphQL::AuthService`
|
|
537
|
+
- `#session_token` added **token auto-renew** functionality (when token expires in less than 90 minutes)
|
|
538
|
+
- `#session_token_renewed`
|
|
539
|
+
|
|
540
|
+
### Fixed
|
|
541
|
+
|
|
542
|
+
- Enabled to specify `host` (other than `live.ecoportal.com`) by the user
|
|
543
|
+
|
|
544
|
+
## [0.3.3] - 2023-04-02
|
|
545
|
+
|
|
546
|
+
### Fixed
|
|
547
|
+
|
|
548
|
+
- `Ecoportal::API::GraphQL::Base::LocationNode` **added** attribute `archivedToken`
|
|
549
|
+
|
|
550
|
+
## [0.3.2] - 2023-04-02
|
|
551
|
+
|
|
552
|
+
### Changed
|
|
553
|
+
|
|
554
|
+
- `Ecoportal::API::GraphQL::Helpers::LocationsTree#treeify` added support for `archived_token`
|
|
555
|
+
|
|
556
|
+
## [0.3.1] - 2023-03-09
|
|
557
|
+
|
|
558
|
+
### Changed
|
|
559
|
+
|
|
560
|
+
- Upgraded core gem dependency `ecoportal-api-v2`
|
|
561
|
+
|
|
562
|
+
## [0.2.3] - 2023-02-27
|
|
563
|
+
|
|
564
|
+
### Fixed
|
|
565
|
+
|
|
566
|
+
- Typo in tests LocationsStructures... should read `locationStructures`
|
|
567
|
+
|
|
568
|
+
## [0.2.2] - 2023-02-24
|
|
569
|
+
|
|
570
|
+
### Fixed
|
|
571
|
+
|
|
572
|
+
- Build gem correctly
|
|
573
|
+
|
|
574
|
+
## [0.2.1] - 2023-02-24
|
|
575
|
+
|
|
576
|
+
### Changed
|
|
577
|
+
|
|
578
|
+
- Migrate from TagTrees to **reporting structures** (breaking change)
|
|
579
|
+
|
|
580
|
+
### Added
|
|
581
|
+
|
|
582
|
+
- Basics for reporting structure mutations
|
|
583
|
+
|
|
584
|
+
## [0.1.11] - 2022-11-29
|
|
585
|
+
|
|
586
|
+
### Added
|
|
587
|
+
|
|
588
|
+
- `Ecoportal::API::GraphQL::Base::Mutation`
|
|
589
|
+
- Added `createContractorEntity`
|
|
590
|
+
|
|
591
|
+
### Changed
|
|
592
|
+
|
|
593
|
+
- **upgraded** `graphlient` gem dependency (support for framents)
|
|
594
|
+
- removed patch in this gem
|
|
595
|
+
- Slight internal refactor of `Ecoportal::API::GraphQL::Base::Query`
|
|
596
|
+
- Upgraded `ecoportal-api-v2` **gem** dependency
|
|
597
|
+
|
|
598
|
+
## [0.1.10] - 2022-09-29
|
|
599
|
+
|
|
600
|
+
### Changed
|
|
601
|
+
|
|
602
|
+
- **upgraded** `ecoportal-api-v2` gem dependency
|
|
603
|
+
|
|
604
|
+
### Fixed
|
|
605
|
+
|
|
606
|
+
- Remove debugging message
|
|
607
|
+
|
|
608
|
+
## [0.1.9] - 2022-09-26
|
|
609
|
+
|
|
610
|
+
### Added
|
|
611
|
+
|
|
612
|
+
- `Ecoportal::API::GraphQL::Query::TagTree`
|
|
613
|
+
|
|
614
|
+
### Changed
|
|
615
|
+
|
|
616
|
+
- **upgraded** `ecoportal-api-v2` gem dependency
|
|
617
|
+
- added `Ecoportal::API::Common::GraphQL::QueryIntegration`
|
|
618
|
+
- restructured `Ecoportal::API::GraphQL::Model::Organization` class
|
|
619
|
+
- **Patch** on `Graphlient::Query` for fragments support (**pull request**: <https://github.com/ashkan18/graphlient/pull/94>)
|
|
620
|
+
|
|
621
|
+
## [0.1.8] - 2022-09-23
|
|
622
|
+
|
|
623
|
+
### Added
|
|
624
|
+
|
|
625
|
+
- `currentOrganization.tagTrees` query
|
|
626
|
+
|
|
627
|
+
### Changed
|
|
628
|
+
|
|
629
|
+
- **upgraded** `ecoportal-api-v2` gem dependency
|
|
630
|
+
- Restructured the `Query` inheritance chain to make things simpler
|
|
631
|
+
|
|
632
|
+
## [0.1.6] - 2022-09-19
|
|
633
|
+
|
|
634
|
+
### Fixed
|
|
635
|
+
|
|
636
|
+
- Call to **private** method `remove_const` in `Ecoportal::API::GraphQL::Fragment#define`
|
|
637
|
+
|
|
638
|
+
## [0.1.5] - 2022-09-19
|
|
639
|
+
|
|
640
|
+
### Added
|
|
641
|
+
|
|
642
|
+
- Patch `GraphQL::Query#append_node` so we can use Fragments in blocks using `___` as start of the constant, and `__` for namespace separator
|
|
643
|
+
- Issue/feature request: <https://github.com/ashkan18/graphlient/issues/93>
|
|
644
|
+
- `Ecoportal::API::GraphQL::Fragment#define` provided that client scripts can create their own fragments in their own namespace
|
|
645
|
+
- Exposed `Ecoportal::API::GraphQL#fragments`
|
|
646
|
+
- It will always (re)define in the `Fragment` root namespace
|
|
647
|
+
|
|
648
|
+
## [0.1.4] - 2022-09-16
|
|
649
|
+
|
|
650
|
+
### Fixed
|
|
651
|
+
|
|
652
|
+
- Able to inject connection block to `each`
|
|
653
|
+
- Error handling delegated to parent class (`QueryConnection`)
|
|
654
|
+
- Retrieve `id` on elements of `Array`
|
|
655
|
+
|
|
656
|
+
## [0.1.3] - 2022-09-15
|
|
657
|
+
|
|
658
|
+
### Fixed
|
|
659
|
+
|
|
660
|
+
- Fixed circular reference to `org_id` in `Ecoportal::API::Common::GraphQL::Client`
|
|
661
|
+
|
|
662
|
+
## [0.1.2] - 2022-09-15
|
|
663
|
+
|
|
664
|
+
### Changed
|
|
665
|
+
|
|
666
|
+
- `Ecoportal::API::GraphQL` addded `email` and `pass` parameters on initialization
|
|
667
|
+
- This allows for integration in some client lib
|
|
668
|
+
|
|
669
|
+
## [0.1.0] - 2022-09-15
|
|
670
|
+
|
|
671
|
+
### Added
|
|
672
|
+
|
|
673
|
+
- First commit with some basic structure
|