Apps - Terms and conditions, limitations and background

Page last updated: 25 November 2022.

Terms and conditions of use

In the following:

  • ‘we’ refers to Digital Geotechnical Ltd, a company registered in the United Kingdom
  • ‘apps’ refers to the web apps, tools and/or online services listed and linked from https://digitalgeotechnical.com/apps-home (the apps themselves are hosted on Google App Engine with domain names of the form https://dg-xxx-xxxxx.ew.r.appspot.com)

By using the apps, you agree to be bound by the terms described herein. If you do not agree to any of the terms, then please do not use the apps.

These conditions shall be read in conjunction with our privacy policy (including cookie policy) which also applies to the apps.

The apps are provided ‘as is’ without warranty of any kind, either expressed or implied.

Whilst we do not expressly forbid commercial use of the apps, please be aware that these apps are primarily intended as technology demonstrators. Your attention is drawn to the background and limitations described below, the information provided on how we handle your data files, and the (lack of) warranty described above.

If you are interested in commercial application of these apps, or similar, then please get in touch with us to discuss a suitable arrangement.

At present we do not require users to subscribe, i.e. no login required, or otherwise identify themselves. However, we reserve the right to introduce a login and/or subscription system in the future.

We reserve the right to withdraw some or all of the apps at any time. Alternatively, we reserve the right to start charging a fee for use of the apps in future (this will not be retrospective).

Background

The original motivation for creating these apps was to learn more about the relevant technologies, and to try them out. After having some early success we decided that it would make sense to share our work with the world.

Making software or apps available for commercial use brings certain responsibilities and liabilities into play, and we would need to charge a fee to cover the burden of these. To keep things simple we have instead decided to make the apps available for free, but on an ‘as is’ no liability basis, and with some limits imposed on file size.

Our hope is that they will generate interest, raising the profile of Digital Geotechnical Ltd and hopefully bringing in some new business for us, whether that is directly related to the apps or the other services that we offer.

This is not an open source project. We have put a lot of time and effort into these apps and are not quite ready to give the code away for free. However, it is possible that we may morph this into an open source project at some point in the future, possibly as part of the AGS open source work. It depends on what interest it generates and how things work out commercially for us.

A qualified exception to the above is the validation app as this relies on the AGS validation tool open source python library. This, and its implications, are further discussed below.

For the technical nerds out there, here is a brief summary of what is going on under the bonnet:

  • Hosted on Google App Engine (Standard Environment)
  • Backend (server side) code written in Python, making use of the Flask web framework and Jinja templates
  • Bootstrap used for HTML formatting and widgets
  • Client side (browser) code generally limited to Bootstrap Javascript

Limitations

We have done our best to ensure that these apps function reliably and give the right outputs. However, we reiterate that they are primarily technology demonstrators, not commercial software, and remind you that we are not offering any sort of warranty.

For apps (other than the validator tool) that process AGS data, it is assumed that the input provided is valid AGS data in accordance with the AGS format rules. If this is not the case, i.e. the input contains errors, then the output must be interpreted with caution as it may also have errors, i.e. rubbish in = rubbish out. In most cases, warnings will be presented with the results detailing critical problems identified during parsing of the data. In most cases, problematic lines of data will be disregarded during parsing, and therefore not reflected in the results or output files. However, it is not possible for us to anticipate every problem that could possibly arise with the data and a lack of warnings should not be taken to mean that the data file is valid. If in doubt, use the validator tool to check the input file before using the other tools.

The programme of checking and validation that we have undertaken is probably less rigorous than what you would expect for a commercial app. We suspect that there may be bugs that we have not yet found. Please bear with us, and please do let us know if you find any!

Regarding security vulnerabilities, our scripts incorporate reasonable measures such as limits on upload file size, use of the werkzeug secure_filename function for sanitising upload filenames, and a check on the upload file extension. There are also security measures built into Google App Engine. Given that we are not retaining data, other than in a transient GAE temporary folder, we believe that the security measures in place are reasonable for a free to use web app.

Our apps are designed to be used in modern mainstream web browsers. Most of our testing has been carried out using Microsoft Edge with a few checks carried out on Chrome. We have not checked all browsers and all relevant versions. Please let us know if you encounter problems on your particular browser. However, please note that we do not intend to support legacy web browsers.

These apps are primarily designed for use on a pc with a full size screen. However, most of our apps have a responsive design and should work well on mobile devices, albeit with a different look and feel. However, please note that we have undertaken only limited testing on mobile devices as our main focus has been on pc.

Our apps are hosted on Google App Engine (GAE) Standard Environment. This is a paid for service but it has a free tier and our hope is that we will benefit from this and that the running costs will be small. However, if we do start to incur significant fees then we will need to review our offering.

Our use of the basic GAE service means that performance, i.e. speed, is likely to be lower than would be expected from a premium set up. In our testing we have found run times to be perfectly acceptable, although you may notice a bit of a delay in starting up or when accessing the service for the first time in a while.

We have limited the size of files that may be uploaded and processed. In part this is to discourage commercial use on large projects. We also want to ensure that execution times are reasonable, especially as we have not implemented a progress bar. However, the main reason is GAE constraints on file size and memory.

We use temporary files in GAE but these can be no more than 32MB. However, during testing we encountered memory problems long before reaching this limit. For the apps where a larger file sizes are desirable we have been able to address this by tweaking our GAE configuration to get more memory allocated, but this solution may lead to additional costs being incurred at our end.

The file size limits that we have applied are based on the results of our testing, i.e. we are fairly confident that the apps will work ok up to these limits.

We will keep them under review and reserve the right to adjust the limits, up or down, as necessary.

In addition to the general limitations described on this page, please also refer to the additional limitations that may apply to a particular app as described on the landing page for that app.

How we handle your data

In this day and age we all have to be mindful of data security, especially when that data may ultimately belong to a client. You need to make your own decision as to whether our apps meet your requirements in relation to data security.

In the following we describe how our apps work to inform your decision. We believe that our apps will keep your data as safe as it can practically be, but ultimately you need to decide.

Unless otherwise stated in the further technical information for a particular app, we do not retain copies of, or have access to, any files or data that you provide to the apps, or any output from the apps. Temporary files are created during processing, as further described below, but the app design and hosting are such that we do not have access to these.

The apps use input data, generally an AGS data file, provided by you, the user. The apps are not able to directly interact with files on your file system. Therefore, the general process is:

  • User selects a file to process
  • This file is uploaded to the server
  • File is processed (server side, using our Python scripts)
  • Outputs are provided on screen with, in most cases, an option provided to download any output files generated

Our apps are hosted on Google App Engine (GAE). Uploaded data files and any output files generated are stored in a temporary folder (/tmp) created by GAE.

Files in the /tmp folder are only available to the app instance that created the files. Each user on the system at any one time will have their own separate and private instance. When a user instance is terminated, the temporary folder and its contents are permanently deleted. For our apps, termination will normally occur after a period of user inactivity, typically 15 minutes.

In addition, our scripts aim to delete uploaded files (from the /tmp folder) as soon as they are no longer needed, i.e. once the relevant data has been read into (Python) memory.

Data stored in memory is deleted when the user navigates away from the applicable output/results page, or when the instance is terminated, whichever comes first.

Output files are not automatically deleted when downloaded so these may persist in the /tmp folder until instance termination, at which point they get deleted along with the folder. However, if a user re-runs the app during the same session then the original files will be deleted and replaced with new versions. In some of our apps, you can choose to suppress generation of output files.

More information on how Google App Engine temporary files and instances work can be found here:

AGS validator open source project

Our AGS4 validation tool app is a front end to the ‘official’ AGS validation tool created and maintained by the AGS validator open source project. Further information can be found on the AGS (validator) Python library Gitlab page.

Our front end provides the file selection page, the results output page and the downloadable results files. All file parsing and validation is undertaken by the AGS tool, which feeds results to our front end. We have achieved this by referencing the python-ags4 python library in our code.

Given that the underlying checking/validation is undertaken by the python-ags4 library, we recommend that any problems you encounter with the validation itself should be reported to the AGS validator open source project team, e.g. via Gitlab. Having said that, we would be keen to hear about it too, as we may be able to help.

The python-ags4 library is available under the GNU Lesser General Public License v3 (LGPLv3). Our app is a derivative work that uses the library but does not modify it. We are not obliged to share the proprietary elements of our source code under LGPLv3.

However, if you like what we have done and are interested in our app and/or its code, them please get in touch as we may be able to work out a mutually beneficial arrangement.