From cbba03a368220c53cb52a768355fc644979840c7 Mon Sep 17 00:00:00 2001 From: Niklas van Schrick Date: Mon, 9 Feb 2026 21:31:53 +0100 Subject: [PATCH] Drop frontend fields from reference value - data_type_identifier - node - scope - depth --- .../types/input/reference_value_input_type.rb | 7 ------- app/graphql/types/reference_value_type.rb | 7 ------- app/models/reference_value.rb | 1 - .../namespaces/projects/flows/update_service.rb | 10 ---------- ...852_drop_frontend_fields_from_reference_value.rb | 13 +++++++++++++ db/schema_migrations/20260209200852 | 1 + db/structure.sql | 11 +---------- .../graphql/input_object/datatypeidentifierinput.md | 13 ------------- docs/graphql/input_object/genericmapperinput.md | 12 ------------ docs/graphql/input_object/generictypeinput.md | 12 ------------ docs/graphql/input_object/referencevalueinput.md | 4 ---- docs/graphql/object/referencevalue.md | 4 ---- spec/factories/reference_values.rb | 4 ---- spec/models/reference_value_spec.rb | 1 - .../projects/flows/create_mutation_spec.rb | 10 ---------- .../projects/flows/update_mutation_spec.rb | 10 ---------- 16 files changed, 15 insertions(+), 105 deletions(-) create mode 100644 db/migrate/20260209200852_drop_frontend_fields_from_reference_value.rb create mode 100644 db/schema_migrations/20260209200852 delete mode 100644 docs/graphql/input_object/datatypeidentifierinput.md delete mode 100644 docs/graphql/input_object/genericmapperinput.md delete mode 100644 docs/graphql/input_object/generictypeinput.md diff --git a/app/graphql/types/input/reference_value_input_type.rb b/app/graphql/types/input/reference_value_input_type.rb index 781378d4..22242959 100644 --- a/app/graphql/types/input/reference_value_input_type.rb +++ b/app/graphql/types/input/reference_value_input_type.rb @@ -9,13 +9,6 @@ class ReferenceValueInputType < Types::BaseInputObject required: true, description: 'The paths associated with this reference value' argument :node_function_id, GlobalIdType[::NodeFunction], required: true, description: 'The referenced value' - - argument :data_type_identifier, Types::Input::DataTypeIdentifierInputType, - required: true, description: 'The identifier of the data type this reference value belongs to' - - argument :depth, Int, required: true, description: 'The depth of the reference value' - argument :node, Int, required: true, description: 'The node of the reference' - argument :scope, [Int], required: true, description: 'The scope of the reference value' end end end diff --git a/app/graphql/types/reference_value_type.rb b/app/graphql/types/reference_value_type.rb index 719487cf..bcc66f79 100644 --- a/app/graphql/types/reference_value_type.rb +++ b/app/graphql/types/reference_value_type.rb @@ -6,13 +6,6 @@ class ReferenceValueType < Types::BaseObject field :node_function_id, GlobalIdType[::NodeFunction], null: false, description: 'The referenced value.' - field :data_type_identifier, Types::DataTypeIdentifierType, - null: false, description: 'The identifier of the data type this reference value belongs to.' - - field :depth, Int, null: false, description: 'The depth of the reference value.' - field :node, Int, null: false, description: 'The node of the reference value.' - field :scope, [Int], null: false, description: 'The scope of the reference value.' - field :reference_path, [Types::ReferencePathType], null: false, description: 'The paths associated with this reference value.', diff --git a/app/models/reference_value.rb b/app/models/reference_value.rb index 360fd101..c1a9dbb9 100644 --- a/app/models/reference_value.rb +++ b/app/models/reference_value.rb @@ -2,7 +2,6 @@ class ReferenceValue < ApplicationRecord belongs_to :node_function # real value association - belongs_to :data_type_identifier has_many :reference_paths, inverse_of: :reference_value, autosave: true, dependent: :destroy has_many :node_parameters, inverse_of: :reference_value diff --git a/app/services/namespaces/projects/flows/update_service.rb b/app/services/namespaces/projects/flows/update_service.rb index 1f38664a..e1c44795 100644 --- a/app/services/namespaces/projects/flows/update_service.rb +++ b/app/services/namespaces/projects/flows/update_service.rb @@ -201,12 +201,6 @@ def update_node_parameters(t, current_node, current_node_input, all_nodes) end if parameter.value.reference_value.present? - data_type_identifier = get_data_type_identifier( - flow.project.primary_runtime, - parameter.value.reference_value.data_type_identifier, - t - ) - referenced_node = all_nodes.find do |n| n[:input].id == parameter.value.reference_value.node_function_id end @@ -229,11 +223,7 @@ def update_node_parameters(t, current_node, current_node_input, all_nodes) end reference_value.assign_attributes( - data_type_identifier: data_type_identifier, node_function: referenced_node[:node], - depth: parameter.value.reference_value.depth, - node: parameter.value.reference_value.node, - scope: parameter.value.reference_value.scope, reference_paths: reference_paths ) else diff --git a/db/migrate/20260209200852_drop_frontend_fields_from_reference_value.rb b/db/migrate/20260209200852_drop_frontend_fields_from_reference_value.rb new file mode 100644 index 00000000..71d9f251 --- /dev/null +++ b/db/migrate/20260209200852_drop_frontend_fields_from_reference_value.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +class DropFrontendFieldsFromReferenceValue < Code0::ZeroTrack::Database::Migration[1.0] + def change + remove_reference :reference_values, :data_type_identifier, null: false, foreign_key: { + to_table: :data_type_identifiers, on_delete: :restrict + } + + remove_column :reference_values, :scope, :integer, array: true, null: false, default: [] + remove_column :reference_values, :node, :integer, null: false, default: 0 + remove_column :reference_values, :depth, :integer, null: false, default: 0 + end +end diff --git a/db/schema_migrations/20260209200852 b/db/schema_migrations/20260209200852 new file mode 100644 index 00000000..abb18f7c --- /dev/null +++ b/db/schema_migrations/20260209200852 @@ -0,0 +1 @@ +6ad01c08408e467d3ff1ac8470da7ab77a852632896297e05d1dc2cc77e190b9 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 0838d67b..cf25cd98 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -668,11 +668,7 @@ CREATE TABLE reference_values ( id bigint NOT NULL, created_at timestamp with time zone NOT NULL, updated_at timestamp with time zone NOT NULL, - node_function_id bigint NOT NULL, - depth integer DEFAULT 0 NOT NULL, - node integer DEFAULT 0 NOT NULL, - scope integer[] DEFAULT '{}'::integer[] NOT NULL, - data_type_identifier_id bigint NOT NULL + node_function_id bigint NOT NULL ); CREATE SEQUENCE reference_values_id_seq @@ -1213,8 +1209,6 @@ CREATE INDEX index_parameter_definitions_on_runtime_parameter_definition_id ON p CREATE INDEX index_reference_paths_on_reference_value_id ON reference_paths USING btree (reference_value_id); -CREATE INDEX index_reference_values_on_data_type_identifier_id ON reference_values USING btree (data_type_identifier_id); - CREATE INDEX index_reference_values_on_node_function_id ON reference_values USING btree (node_function_id); CREATE INDEX index_runtime_function_definitions_on_return_type_id ON runtime_function_definitions USING btree (return_type_id); @@ -1375,9 +1369,6 @@ ALTER TABLE ONLY flow_type_settings ALTER TABLE ONLY flows ADD CONSTRAINT fk_rails_ab927e0ecb FOREIGN KEY (project_id) REFERENCES namespace_projects(id) ON DELETE CASCADE; -ALTER TABLE ONLY reference_values - ADD CONSTRAINT fk_rails_bb34a5d62c FOREIGN KEY (data_type_identifier_id) REFERENCES data_type_identifiers(id) ON DELETE RESTRICT; - ALTER TABLE ONLY flows ADD CONSTRAINT fk_rails_bb587eff6a FOREIGN KEY (input_type_id) REFERENCES data_types(id) ON DELETE RESTRICT; diff --git a/docs/graphql/input_object/datatypeidentifierinput.md b/docs/graphql/input_object/datatypeidentifierinput.md deleted file mode 100644 index b8bbb539..00000000 --- a/docs/graphql/input_object/datatypeidentifierinput.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: DataTypeIdentifierInput ---- - -Input type for data type identifier - -## Fields - -| Name | Type | Description | -|------|------|-------------| -| `dataTypeId` | [`DataTypeID`](../scalar/datatypeid.md) | Data type ID | -| `genericKey` | [`String`](../scalar/string.md) | Generic key value | -| `genericType` | [`GenericTypeInput`](../input_object/generictypeinput.md) | Generic type information | diff --git a/docs/graphql/input_object/genericmapperinput.md b/docs/graphql/input_object/genericmapperinput.md deleted file mode 100644 index 003518c2..00000000 --- a/docs/graphql/input_object/genericmapperinput.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: GenericMapperInput ---- - -Input type for generic mappers - -## Fields - -| Name | Type | Description | -|------|------|-------------| -| `sourceDataTypeIdentifiers` | [`[DataTypeIdentifierInput!]!`](../input_object/datatypeidentifierinput.md) | The source data type identifier for the mapper | -| `target` | [`String!`](../scalar/string.md) | The target data type identifier for the mapper | diff --git a/docs/graphql/input_object/generictypeinput.md b/docs/graphql/input_object/generictypeinput.md deleted file mode 100644 index 8201dc8d..00000000 --- a/docs/graphql/input_object/generictypeinput.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: GenericTypeInput ---- - -Input type for generic type operations. - -## Fields - -| Name | Type | Description | -|------|------|-------------| -| `dataTypeId` | [`DataTypeID!`](../scalar/datatypeid.md) | The data type associated with this generic type. | -| `genericMappers` | [`[GenericMapperInput!]!`](../input_object/genericmapperinput.md) | The mappers associated with this generic type. | diff --git a/docs/graphql/input_object/referencevalueinput.md b/docs/graphql/input_object/referencevalueinput.md index fa2369c7..842913f3 100644 --- a/docs/graphql/input_object/referencevalueinput.md +++ b/docs/graphql/input_object/referencevalueinput.md @@ -8,9 +8,5 @@ Input type for reference value | Name | Type | Description | |------|------|-------------| -| `dataTypeIdentifier` | [`DataTypeIdentifierInput!`](../input_object/datatypeidentifierinput.md) | The identifier of the data type this reference value belongs to | -| `depth` | [`Int!`](../scalar/int.md) | The depth of the reference value | -| `node` | [`Int!`](../scalar/int.md) | The node of the reference | | `nodeFunctionId` | [`NodeFunctionID!`](../scalar/nodefunctionid.md) | The referenced value | | `referencePath` | [`[ReferencePathInput!]!`](../input_object/referencepathinput.md) | The paths associated with this reference value | -| `scope` | [`[Int!]!`](../scalar/int.md) | The scope of the reference value | diff --git a/docs/graphql/object/referencevalue.md b/docs/graphql/object/referencevalue.md index 7552057f..b50d76ed 100644 --- a/docs/graphql/object/referencevalue.md +++ b/docs/graphql/object/referencevalue.md @@ -9,12 +9,8 @@ Represents a reference value in the system. | Name | Type | Description | |------|------|-------------| | `createdAt` | [`Time!`](../scalar/time.md) | Time when this ReferenceValue was created | -| `dataTypeIdentifier` | [`DataTypeIdentifier!`](../object/datatypeidentifier.md) | The identifier of the data type this reference value belongs to. | -| `depth` | [`Int!`](../scalar/int.md) | The depth of the reference value. | | `id` | [`ReferenceValueID!`](../scalar/referencevalueid.md) | Global ID of this ReferenceValue | -| `node` | [`Int!`](../scalar/int.md) | The node of the reference value. | | `nodeFunctionId` | [`NodeFunctionID!`](../scalar/nodefunctionid.md) | The referenced value. | | `referencePath` | [`[ReferencePath!]!`](../object/referencepath.md) | The paths associated with this reference value. | -| `scope` | [`[Int!]!`](../scalar/int.md) | The scope of the reference value. | | `updatedAt` | [`Time!`](../scalar/time.md) | Time when this ReferenceValue was last updated | diff --git a/spec/factories/reference_values.rb b/spec/factories/reference_values.rb index 0d643373..9bdc12f0 100644 --- a/spec/factories/reference_values.rb +++ b/spec/factories/reference_values.rb @@ -3,9 +3,5 @@ FactoryBot.define do factory :reference_value do node_function - data_type_identifier { association(:data_type_identifier, data_type: association(:data_type)) } - depth { 1 } - node { 1 } - scope { [] } end end diff --git a/spec/models/reference_value_spec.rb b/spec/models/reference_value_spec.rb index aae7456f..f4cd8c16 100644 --- a/spec/models/reference_value_spec.rb +++ b/spec/models/reference_value_spec.rb @@ -9,7 +9,6 @@ describe 'associations' do it { is_expected.to belong_to(:node_function) } - it { is_expected.to belong_to(:data_type_identifier) } it { is_expected.to have_many(:reference_paths) } end end diff --git a/spec/requests/graphql/mutation/namespace/projects/flows/create_mutation_spec.rb b/spec/requests/graphql/mutation/namespace/projects/flows/create_mutation_spec.rb index f79e6701..6557a7da 100644 --- a/spec/requests/graphql/mutation/namespace/projects/flows/create_mutation_spec.rb +++ b/spec/requests/graphql/mutation/namespace/projects/flows/create_mutation_spec.rb @@ -30,17 +30,13 @@ } ...on ReferenceValue { createdAt - dataTypeIdentifier { id } - depth id - node nodeFunctionId referencePath { arrayIndex id path } - scope updatedAt } } @@ -129,9 +125,6 @@ parameterDefinitionId: function_definition.parameter_definitions.first.to_global_id.to_s, value: { referenceValue: { - depth: 1, - node: 1, - scope: [], referencePath: [ { arrayIndex: 0, @@ -139,9 +132,6 @@ } ], nodeFunctionId: 'gid://sagittarius/NodeFunction/2000', - dataTypeIdentifier: { - genericKey: 'K', - }, }, } ], diff --git a/spec/requests/graphql/mutation/namespace/projects/flows/update_mutation_spec.rb b/spec/requests/graphql/mutation/namespace/projects/flows/update_mutation_spec.rb index c1c014cd..f14f5e83 100644 --- a/spec/requests/graphql/mutation/namespace/projects/flows/update_mutation_spec.rb +++ b/spec/requests/graphql/mutation/namespace/projects/flows/update_mutation_spec.rb @@ -30,17 +30,13 @@ } ...on ReferenceValue { createdAt - dataTypeIdentifier { id } - depth id - node nodeFunctionId referencePath { arrayIndex id path } - scope updatedAt } } @@ -132,9 +128,6 @@ parameterDefinitionId: function_definition.parameter_definitions.first.to_global_id.to_s, value: { referenceValue: { - depth: 1, - node: 1, - scope: [], referencePath: [ { arrayIndex: 0, @@ -142,9 +135,6 @@ } ], nodeFunctionId: 'gid://sagittarius/NodeFunction/2000', - dataTypeIdentifier: { - dataTypeId: function_definition.parameter_definitions.first.data_type.data_type.to_global_id, - }, }, } ],