Hello, I’m very impressed with Corteza and can see how powerful it is. I have a feature that I’d like to sponsor into the project - is that something that can be done?
It may end up as a number of bits, but the use case I’m trying to solve is managing permissions via joins as follows:
Create a user (in core DB) and an associated contact record (in connection DB) - easy
Link the contact to another resource by a many to many in the connection DB. Cohort (easy)
Ensure that a user can only “see” (list/view/edit) contacts in the cohort they are a member.
I understand that you can do this by using Workflows to publish out the required userIDs onto the relevant records and do a simple filter, but fairly quickly this becomes impractical when the joins could be 5,6 or 7 tables across and the solutions I am looking at will need that.
My feeling is that we could incorporate some “Join” capabilities into some of the existing features.
I was thinking that some capabilities might be:
- Read/List Hooks. Have a hook before the reading of lists or records and individual records that trigger a workflow that must return a record or records based on the output from workflow. This could then apply a highly flexible rule set as required.
2.Augment the existing pre-filter expressions to enable SQL like joins like for a Cohort pre-filter “join CohortContact on recordID=CohortContact.cohortID join Contact on Contact.recordID=Contact.recordID WHERE Contact.userID=userID.” (with left/right joins too!)
3. Have a workflow function step that does a search with an additional join expression of the type in suggestion 2.
I envisage that all the joins would be in the same DB and that any addition indexing would be set up separately.
I know a few programme languages myself, but unfortunately Go is not one of them. I would build and donate myself if I could, but it is beyond me.
Anyway let me know what is possible.