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
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.
Controller Decorators
Added three new decorators:
controller
,consumer
, andhandler
.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 newregister_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 thecompose_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 ofmanage.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 themanage.py
that Tethys is using.
See: manage command
Tethys Docker Command
The
tethys docker
command was updated to use thepostgis/postgis
image instead of themdillon/postgis
image.The
latest
version ofpostgis/postgis
will be pulled which was 14_3.3 at time of writing (PostgreSQL 14, PostGIS 3.3).
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.
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 becomehttps://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.
Documentation
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
totethysapp
to allow for using__name__
to get/name loggers.
Bug Fixes
Fixed Issue 763: Spatial Dataset Service created w/ CLI does not work until manually saved in admin pages
Fixed Issue 714: Restore Defaults Option of Site Command Breaks Tethys Portal
Fixed Issue 718: Error to bind the THREDDS data directory on Windows
Fixed Issue 777: tethys_quotas.UserQuota' has no ForeignKey to 'tethys_apps.ProxyApp
Security Fixes
Updated GeoServer and THREDDS containers used by tethys docker command to address log4j vulnerabilities.
Addressed Issue 719: CSP requires unsafe-eval for plot_view.