diff --git a/common/proto/table_script.proto b/common/proto/table_script.proto index 19a25e5..0f72a3b 100644 --- a/common/proto/table_script.proto +++ b/common/proto/table_script.proto @@ -11,7 +11,7 @@ package komp_ac.table_script; // - Validates column/type usage inside math expressions // - Validates referenced tables/columns against the schema // - Enforces link constraints for structured access (see notes below) -// - Analyzes dependencies and prevents cycles across the schema +// - Analyzes and records dependencies across the schema // - Transforms the script to decimal-safe math (steel_decimal) // - Upserts into table_scripts and records dependencies in script_dependencies // - Hydrates external column and aggregate inputs requested by the client @@ -37,8 +37,8 @@ service TableScript { // • Structured access via steel_get_column // requires an explicit link in table_definition_links // - Rejects raw SQL access; steel_query_sql is not part of the supported DSL - // - Detects and rejects circular dependencies across all scripts in the schema - // (self-references are allowed and not treated as cycles) + // - Records dependencies for hydration and future graph analysis; circular + // graphs are allowed because scripts do not recursively trigger each other // - Transforms the script to decimal-safe operations (steel_decimal) // - UPSERTS into table_scripts on (table_definitions_id, target_column) // and saves a normalized dependency list into script_dependencies @@ -118,10 +118,10 @@ message PostTableScriptRequest { // - Columns of the following types CANNOT be used inside math expressions: // BIGINT, TEXT, BOOLEAN, DATE, TIMESTAMPTZ // - // Dependency tracking and cycles: + // Dependency tracking: // - Dependencies are extracted from steel_get_column calls and stored // in script_dependencies with context - // - Cycles across tables are rejected (self-dependency is allowed) + // - Circular graphs are retained as metadata and do not block this request string script = 3; // Optional. Free-text description stored alongside the script (no functional effect). diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 2b1d187..92d12c8 100644 Binary files a/common/src/proto/descriptor.bin and b/common/src/proto/descriptor.bin differ diff --git a/common/src/proto/komp_ac.table_script.rs b/common/src/proto/komp_ac.table_script.rs index c2136d6..ef72417 100644 --- a/common/src/proto/komp_ac.table_script.rs +++ b/common/src/proto/komp_ac.table_script.rs @@ -47,11 +47,11 @@ pub struct PostTableScriptRequest { /// * Columns of the following types CANNOT be used inside math expressions: /// BIGINT, TEXT, BOOLEAN, DATE, TIMESTAMPTZ /// - /// Dependency tracking and cycles: + /// Dependency tracking: /// /// * Dependencies are extracted from steel_get_column calls and stored /// in script_dependencies with context - /// * Cycles across tables are rejected (self-dependency is allowed) + /// * Circular graphs are retained as metadata and do not block this request #[prost(string, tag = "3")] pub script: ::prost::alloc::string::String, /// Optional. Free-text description stored alongside the script (no functional effect). @@ -229,7 +229,7 @@ pub mod table_script_client { /// * Validates column/type usage inside math expressions /// * Validates referenced tables/columns against the schema /// * Enforces link constraints for structured access (see notes below) - /// * Analyzes dependencies and prevents cycles across the schema + /// * Analyzes and records dependencies across the schema /// * Transforms the script to decimal-safe math (steel_decimal) /// * Upserts into table_scripts and records dependencies in script_dependencies /// * Hydrates external column and aggregate inputs requested by the client @@ -335,8 +335,8 @@ pub mod table_script_client { /// • Structured access via steel_get_column /// requires an explicit link in table_definition_links /// * Rejects raw SQL access; steel_query_sql is not part of the supported DSL - /// * Detects and rejects circular dependencies across all scripts in the schema - /// (self-references are allowed and not treated as cycles) + /// * Records dependencies for hydration and future graph analysis; circular + /// graphs are allowed because scripts do not recursively trigger each other /// * Transforms the script to decimal-safe operations (steel_decimal) /// * UPSERTS into table_scripts on (table_definitions_id, target_column) /// and saves a normalized dependency list into script_dependencies @@ -482,8 +482,8 @@ pub mod table_script_server { /// • Structured access via steel_get_column /// requires an explicit link in table_definition_links /// * Rejects raw SQL access; steel_query_sql is not part of the supported DSL - /// * Detects and rejects circular dependencies across all scripts in the schema - /// (self-references are allowed and not treated as cycles) + /// * Records dependencies for hydration and future graph analysis; circular + /// graphs are allowed because scripts do not recursively trigger each other /// * Transforms the script to decimal-safe operations (steel_decimal) /// * UPSERTS into table_scripts on (table_definitions_id, target_column) /// and saves a normalized dependency list into script_dependencies @@ -546,7 +546,7 @@ pub mod table_script_server { /// * Validates column/type usage inside math expressions /// * Validates referenced tables/columns against the schema /// * Enforces link constraints for structured access (see notes below) - /// * Analyzes dependencies and prevents cycles across the schema + /// * Analyzes and records dependencies across the schema /// * Transforms the script to decimal-safe math (steel_decimal) /// * Upserts into table_scripts and records dependencies in script_dependencies /// * Hydrates external column and aggregate inputs requested by the client diff --git a/server b/server index 49e661f..6e1211f 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit 49e661f9b8503be8b8260dc4142d23ab47f31480 +Subproject commit 6e1211f722708f10a321a7139768b1565c1f8fb2