Small stand alone application for periodially grist backups (sqlite, xlsx, csv)

I’ve build a small stand alone application that downloads/exports
your Grist documents for periodically backups.
It works with hosted and self hosted grist.

The reason i build it is, that we need to do “tamperproof periodically snapshots” of our documents,
to be archived for 10+/30+ years (gene modified organisms database), so this tool can download the documents in all three formats, to hopefully be still readable in these 30+ years.


Thank you for this! Very cool.

Looks great, need to try it out!
Thanks very much for sharing!

that’s super cool :+1:,
what’s this part of the config file does , is it the name of tables in Grist we wanna download ?


In contrast to sqlite and xlsx, csv only downloads one specific table.
So in the [csvtable] section you tell the tool which tables you want to download as csv.

1 Like

I’ve created a new release:

  • v0.3.0
    • Added logging
    • Do not create files in case of an error.
    • create config.ini in case its missing
    • In case of an error the application quits with an return code of “1”.
    • Added linux builds
      • amd64
      • arm
      • arm-linux-gnueabi
      • arm-linux-gnueabihf

I’ve created a new release (fixing some ugly bugs):

  • v0.3.1
    • Fixed bug that prevents v0.3.0 from running. (ApiKey always empty.)
    • Use platform specific newline character in generated config.
      • Older versions of Windows display the config correct in notepad.
    • Print Version in the logs
    • Fixed bug that does not print csv tables in the log.
1 Like

I’ve created a new release:

  • v0.3.2
    • Added wildcard downloads to csv this means that for example::
      • * Fetches all tables as csv
      • MyTable* Fetches all tables that start with “MyTable”
      • *Expanses* Fetches all tables that contain the word Expanses in the name

@enthus1ast Thanks for a very useful app.
But what if you need to make a Backup from several documents with different docId’s?

For version v0.3.2 the only option is to copy the
executable to a new folder and create another config.ini.
Then call the executable from the other folder.

However, I’ve already written a new version that uses config dirs and supports multiple configs. It is done and working, but not released yet.
I could release it later (that version also comes with .deb packages).

I’ve uploaded the changes to github, GitHub - enthus1ast/nimDownloadGrist at devel
but currently you must build it yourself.
Before i want to create a new release, i want to document the changes properly, fix the linux man page creation, and build the .deb package for all targets i support.