User story
As grpahCMS user i should be able to export data directly from the CMS using a built in export to CSV tool on the tabluar view
Example use case
For example we are storing some end user details in the graph CMS to avoid building an “admin” interface where admins can go and access details.This could be used to export sales/marketing information
Exclusion
The assets should not be exportable
Acceptance criterias:
- The export must not expose any invisible fields (field settings)
- Should only export whatever is visible on the tabular view (following the view config)
- If relation(s) are visible, those should return the related content and not the ID(1)
- if there are multiple items related in one field they should be coma separated within double qoutes
- The export should not be limited by rows
- The export should respect the filters set on the interface
(1)
In a user export case say the “job role” is a relation - when exported it should show the text representation of the role “it manager” instead of the long ID.
Resource/Performance consideration:
The load on the servers should be the same as if we would run it through the API and handle the response.
obvious overhead is the JSON to CSV process, and the file download)
- to reduce the load on the servers: A QUEUE mechanism should be used, which would allow the servers to process only a limited amount of export at the same time. Thus avoiding bringing the servers down exporting a million tables.
- At the end of the process the CMS should notify the user through either a message or an email that the export is available and could be downloaded from the server.
- the files are automatically deleted after a set time (24 - 48 hours)
- exporting the same dataset should use the same filename to avoid excess cost on storage on graphCMS’s end.
this would allow the CMS to help the non technical people to do their jobs directly interacting with the CMS instead of requiring an inbetween step or application.