8.9. Collaborative Work

<< Click to Display Table of Contents >>

Navigation:  8. Anatella best practices >

8.9. Collaborative Work


Anatella fully supports collaborative work.


For example, one of the largest Anatella-based project contains about 500 Anatella-Graph-Files. This project has a dozen analysts that are simultaneously & collaboratively working full-time on it.


Collaborative work can happen at different levels:



1. The Analysts can work on the different Anatella graph files and share their work using a versioning system (or using a simpler synchronization software such as “Google Drive” or “DropBox”).


The most established versioning system is currently “Git”. One limitation of Git is that it only supports text files saved in the “utf-8” character encoding (other text file encodings only appear as “binary” files). Please refer to the section 7.1. to know how to save your .anatella files in an optimized format (UTF-8) to get a perfect Git integration.


A Git project nearly always include these 2 files (or some files with an equivalent usage):



…with the “config.cfg” file inside the .gitignore file.

Typically, the program first load all the settings inside the “default_config.cfg” file and thereafter it loads the settings from the “config.cfg” files (possibly over-writing some settings from the “default_config.cfg” file). Thus, every developer can “tune” all the project’s settings using its personal “config.cfg” file, to adapt them to the local machine. To follow this idea inside Anatella, you can include inside your graph:



2.Use the “AnatellaGraph” Javascript Object to automatically modify “in bulk” hundreds of .anatella files to:

Manage the users that are allowed to edit/run the graphs

Save the .anatella file in a format optimized for a version control system (such as git).

This optimized format has the following properties:


oUTF-8 encoding

oNo file encryption

oVarious Cleaning of the XML file: No “keyHD” attributes, No “forceHDBuffering” attributes, No “WorkingSpace” XML tag, no breakpoints inside the Javascript code.

o(optional): No special users for the .anatella file


3.The Analysts can work collaboratively on the code of some tailor-made Javascript/R/Python Actions.


One tailor-made Javascript/R/Python Action can potentially be used in many project and in hundreds of different .anatella-graph-files and you want a “centralized” way of managing your tailor-made Javascript/R/Python Actions. The Analysts can work collaboratively on the “central” repository containing all your tailor-made Javascript/R/Python Actions. Once an analyst upgrades (or fix) a tailor-made Javascript/R/Python Action, the change is automagically propagated to all the .anatella graph files that uses the Action. A good idea is (again) to use a versioning system to keep track of the scripts inside your “central” repository.

See the section 9.7. and the section 9.8. to know more about this subject.

4.The deployment and monitoring of the correct execution of your .anatella graphs can also be done in a collaborative way. More precisely: Anatella integrates with Slack: https://slack.com/    using the AN76E5~1_img80 Action. This means that you can easily send to Slack some monitoring messages that are therafter dispatched (by Slack) to the proper members of your team (to their email, cell phone, etc.).

If you don’t want to work with Slack, you can also use a simpler “email”-based approach for monitoring: For example, this sends a simple “coucou message” to “bob@timi.eu”:




5. You might also want to activate the option named  “use a global locking mechanism”. This option is usefull when there are several data analysts working simultaneously (and collaboratively) on the same server. This option prevents two analysts to simultaneously change the same .anatella graph file. You’ll find more details about this option inside the section 7.2.4.