Summary: This commit revolutionizes our approach to handling ENUM metadata for rule input structures by embedding this metadata directly within each rule's definition. By leveraging the `EnumProvider` interface and utilizing reflection, we've created a system where rules self-describe their ENUM fields, enhancing the API's flexibility and maintainability. The `GetRuleStruct` API endpoint is now capable of dynamically generating responses that include both the input structure and ENUM options, directly derived from the rule definitions themselves. Key Changes: - **Introduced `EnumProvider` Interface**: Allows rule structs to define their own ENUM options, centralizing this information within the rule implementations. - **Enhanced Rule Descriptors**: Rule descriptors are streamlined to focus on factory methods and input struct types, with ENUM metadata being provided by the rules themselves through the `EnumProvider` interface. - **Dynamic ENUM Metadata Retrieval**: The `GetRuleStruct` function dynamically extracts ENUM metadata from rules that implement the `EnumProvider`, ensuring the API response includes relevant ENUM options for frontend UI generation. - **API Response Enhancement**: Adjusted the API to provide a response that includes the rule's input structure, possible ENUM values, and the rule instance representation, all derived dynamically to support extensible and maintainable rule definitions.
Description
No description provided
Languages
Go
96.6%
Dockerfile
3.4%