What's New

Last Updated: December 2022

Refer to this article for information about each new release of Tethys Platform.

Release 4.0

Python 3.10

  • Tethys Platform formally updated to use Python 3.10

  • Should also support Python 3.7+

Django 3.2

  • Django 2.2, the version Tethys 3 depended on, lost LTS status in April 11, 2022

  • Tethys was upgraded to be able to use Django 3.2, the new LTS version until April of 2024

See: Django Supported Versions

Bootstrap 5

  • Upgraded to use Bootstrap version 5 (Tethys 3 used version 3).

  • Tethys Portal overhauled and re-themed using new capabilities of Bootstrap 5.

See: Boostrap 5 Documentation

Controller Decorators

  • Added three new decorators: controller, consumer, and handler.

  • Use these decorators for mapping controllers, consumers, and handlers to URLs.

  • UrlMaps in app.py are no longer needed and the url_maps method is deprecated in favor of the new register_url_maps method.

  • IMPORTANT: The url_maps method is temporarily supported in Tethys Platform 4.0.0 to make migration of apps from Tethys 3 to 4 easier, but will be removed in 4.1.0.

See: Routing API

WebSocket URLs

  • WebSocket URLs now begin with /apps/ to be consistent with the other URLs that are generated by Tethys Platform (e.g.: /apps/my-first-app/ws/).

See: Websockets and WebSockets Concepts

Tethys Map Layout

  • The first Tethys Layout, a new way to quickly and easily add fully functioning views to Tethys Apps.

  • A fully-featured, customizable map view with layer tree, address search, attribute popups, click-n-plot capability, and more.

  • Subclass the MapLayout class and override the compose_layers method to add layers.

  • Enable / disable functionality by setting class properties.

See: Layouts API and Map Layout

Comprehensive Tethys Manage Command

  • The tethys manage command now provides full range of manage.py commands.

  • Use it to run any manage.py command, including commands provided by Django apps (e.g. django manage shell).

  • Use tethys manage path to get the path to the manage.py that Tethys is using.

See: manage command

Tethys Docker Command

  • The tethys docker command was updated to use the postgis/postgis image instead of the mdillon/postgis image.

  • The latest version of postgis/postgis will be pulled which was 14_3.3 at time of writing (PostgreSQL 14, PostGIS 3.3).

See: https://registry.hub.docker.com/r/postgis/postgis/

Static Dependencies

  • Replaced vendored static dependencies with CDN-hosted equivalants

  • Removed all vendored packages--almost 2000 files!

  • Upgraded all static dependencies to the latest versions

  • Added alternative to install static dependencies using NPM to allow self-hosting of dependencies instead of CDNs

See: STATICFILES_USE_NPM setting at Tethys Portal Configuration

Custom Job Actions

  • The Jobs Table now allows custom actions to be defined and added.

  • The order of the actions displayed in the actions dropdown menu can now be customized.

See: Jobs Table

Scheduler App Settings

  • HTCondor and Dask Schedulers can now be assigned to apps using App Settings like other services.

  • Tethys Dask Scheduler updated to be compatible to the latest version of Dask.

See: Schedulers

Showcase Apps

  • The Developer pages, including the Gizmo Showcase, were removed from Tethys Portal.

  • A new Gizmo Showcase App was developed to provide improved demonstrations and code examples of Tethys Gizmos.

  • A new Layout Showcase App was developed to provide live demonstrations and code examples of the new Map Layout and future Layouts.

See: Showcase Apps

Apps Library

  • The apps in the apps library are now sorted alphabetically by default.

  • Additionally, apps (including proxy apps) have a new order attribute that enables the app sorting to be customized.

See: Tethys Apps

App Settings

  • The color setting is now exposed on the App Settings page for an app, allowing it to be overriden by portal administrators.

  • A new order setting give portal adminstrators control over the ordering of apps on the Apps Library page. Default ordering is alphabetical now.

  • The icon setting now accepts URLs to images hosted on external websites.

  • The new Scheduler Settings can be used to assign HTCondor and Dask Scheduler to apps as is done with other services.

  • Added explanations of each of the common app settings to the documentation for Common Settings.

See: Installed Apps and Extensions

Proxy Apps

  • Added documentation for Proxy Apps in the Tethys Portal Administrator Pages documentation.

  • Added two new properties for Proxy Apps: Back url and Open in new tab.

  • Back url: specify a back URL that will be appended to the app endpoint as a query param (e.g. if the back url https://my.back-url.org/ is provided the app endpoint link will become https://my.portal.org/apps/foo?back=https://my.back-url.org/).

  • Open in new tab: the proxy app will be opened in a new tab (default is to open proxy apps in a new tab now).

  • The Exit button in apps will now redirect to the URL in the back query parameter if it is provided.

  • This will allow for Proxy apps pointing to Tethys apps in other Tethys 4 portals to exit to the referring portal when the user is finished.

See: Proxy Apps

Tethys Portal

  • Additional templates and styles can be overriden.

  • The registration page can now be overridden with a custom controller using the REGISTER_CONTROLLER setting.

  • Minor changes to the structure and naming of the site settings in the portal_config.yml file.

See: Tethys Portal Configuration and Administrator Pages


  • App Migration Documentation for Tethys 3 to 4: Migrating Apps from Tethys 2 to 3

  • All tutorials updated for new Bootstrap 5, Django 3.2, and Tethys 4 syntax: Tutorials

  • Other documentation updates as discussed above.

Miscellaneous Changes

  • Changed logging scope for Tethys apps from tethys.apps to tethysapp to allow for using __name__ to get/name loggers.

Bug Fixes

Security Fixes

Prior Release Notes