Datashare is a self-hosted search engine for documents. It allows user to index documents (in ElasticSearch) on their own computer, and perform search over the extracted text and metadata.
Since several years we offer this tools through a .deb and Docker image. We would like to use those plugs so users can index documents stored in their homedir (Datashare creates a dedicated directory for that).
Datashare is open source and developed by the International Consortium of Investigative Journalists. It’s the same technology our organization used to run famous investigations like the Pandora Papers or the Panama Papers.
The home interface is already auto-connected on regular systems (only on Ubuntu Core does this require a specific auto-connection declaration), so unless your snap is also targeting Ubuntu Core devices then this should not be needed.
Can you please explain why the snap requires system-observe and mount-observe? As from the description above I can’t see a good justification for these interfaces, thanks.
I tried first without these interfaces but it looks like ElasticSearch needed them to start correctly:
I reviewed them again:
system-observe I thought this was needed but after disconnecting it, I can see ElasticSearch starts normally. Sorry, I should have checked earlier!
mount-observe is required by ElasticSearch to inspect the quota information. When initializing, ElasticSearch needs to gather information about the system and ensure the cluster is healthy. For instance, it checks the available disk space. Not connecting this interface triggers a java.io.IOException: Mount point not found error.
I corrected the snapcraft.yml following your advice. The latest revision is here: