Open verti-go opened 3 years ago
This has come back into focus using reusable data sets generated via a combination of api calls, and client side transformations. The combination of each we could consider a view since data source is already taken.
Data sources could be saved as separate entities and shared.
Build views of collections using angular query builder.
Select root entity.
Once root entity selected populate fields for entity. Fields will include relational data.
Begin with elastic.
Architecture put into place should support extending system using other providers.
Views will only be responsible for building queries that return data. Panels will be used for display of that data. The integration with panels will be a separate issue.
This is going to require changes to the api. View configuration will be savable independent of panels.
Probably a view lib and extended entity api for saving views.
An api to handle introspection of properties for any given entity will also be required.
alt
Forget query builder
replace with my own way to building those queries.
Integrate with plugin system.
plugin - adaptor (mongo, sql, elastic, etc.) plugin - field - field type determines comparison ops available - probably based on attribute?
Integrate with json rules engine ->
form -> rule -> query
--> rules module
--> create rules
-> take those rules and convert them to query for x service.
RuleConversion -> plugin = accepts rules and converts to query for provider. RuleField -> determines comparison available for field or data necessary for the comparison.
Rules can have contexts.
A rule can require a context. The context can be used to build the rule.
RuleEntityDiscovery
-> given an entity finds all rule fields available for entity (tree).
-> Screw that -> I'm going to build my own using plugins. Forget that pecker stick and his project. A project which is not maintained well. I will just build my own.
RuleType -> type -> comparison ops
string -> eq, like, neq, start with, ends with long -> eq, neq, lt, gt, lte, gte, between bool -> eq, neq date(extends long)
rule -> context -> ad --------> fetch fields for ad ------------------> create select with available fields for ad entity. -----------------------------> entities can have relations to others -> select relation bring in that entities fields (recursive).
---> rule_entity ------> rule_entity_field
Convert object to attribute
attribute types map to conditionals
ViewCondition
ViewCondition -> rules engine -> transformer (storage) -> search query
Problem: Means anyone can build a query and pass it in. – big issue - no good - security vulnerability MAJOR
I can't allow people to build these queries because it is a major security vulnerability.
AXE - Can't allow due to security issues. People should create services to return data. Panels isn't meant to build these queries anyway. Forget it.