NASA-AMMOS/aerie

Refactor complex operations to backend service actions

Opened this issue · 1 comments

Checked for duplicates

No - I haven't checked

Alternatives considered

Yes - and alternatives don't suffice

Related problems

Some common operations are currently implemented with complex front-end logic that makes it difficult to reproduce the capability via the Aerie API. (Deleting an activity is the one that spawned the thought.)

Describe the feature request

It would be nice if complex logic like this were more frequently implemented as Hasura actions that interact with a back-end service so that client applications don't need to duplicate logic implemented in the UI. I think the solution for plan upload was a great demonstration of this pattern (although, from the standpoint of separating concerns, I expect the merlin server would be a better final destination for this logic instead of the Aerie Gateway.)

Lazily adding more thoughts here on coupling between the UI and backend, another pain point is the user role. As I understand, there is a lot of coupled logic between Hasura and the UI in order to indicate to the user which operations are available with a given role, but having this logic only available in the UI makes it very difficult to decode permission vs. query errors when going through Hasura.