Secure Map Service - #1277
Open
jakeymac wants to merge 88 commits into
Open
Secure Map Service#1277jakeymac wants to merge 88 commits into
jakeymac wants to merge 88 commits into
Conversation
* Added middleware to allow apps to require users to be authenticated with Oauth or be redirected to settings to get their account connected * Added GRiD backend for Oauth authentication * Added new basemap capabilities to allow secure map services to be used as basemaps * Added proxy url route and view for secure requests to SecureMapService endpoints with authentication data * Added helper methods for interacting with SecureMapServices and settings
* Added better error logging in fetch_response util method * Updated secure map service proxy controller to accept any kind of request, not just GET * Added form_id and draw attributes to MapLayout to allow for drawing and passing geometry to forms * Fixed user_data in grid backend
6 tasks
…re map service settings * Updated portal_config.yml file to have a generated SALT_KEY to use for encryption, updated settings.py to use this value * Updated secure map proxy endpoint to always include browser params(params supplied from the browser(bbox, etc))
jakeymac
marked this pull request as ready for review
August 3, 2026 17:19
…basemaps when using a proxy endpoint * Updated generate_request helper function in SecureMapServiceSetting class to return a lazy request to avoid error when using a secure map service as a basemap with a proxy endpoint * Updated generate_request, build_layer, and fetch_response to be private * Added _resolve_secure_map_service as a lazy target for get_secure_map_service
jakeymac
commented
Aug 7, 2026
…y contain query parameters
…API key to query parameters * Removed API key addition logic as it is now handled in get_resolved_params method
* Added timeout protection to _fetch_response method and to secure map proxy endpoint * Updated response protection for Oauth2 responses in secure_map_proxy endpoint
…be provided for the params field
…refresh and handle auth errors
…rieval of Oauth2 tokens * Updated methods on SecureMapService class to all be private and updated references * Updated SecureMapService and related additions to use OAuth2 name and updated references and documentation
…m portal_config to each App class in app.py
* Refined CLI error handling to provide new and more correct error messages * Black fixes
… for providers required by app(s) but that are not configured in the portal_config file.
jakeymac
force-pushed
the
secure-map-service
branch
from
September 17, 2026 22:33
593849e to
69b4cf8
Compare
…ing the install command function find the app_name using the parent folder name if install.yml is not present * Updated install command to generate an install.yml file at a given file path if there isn't one there already
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR adds Secure Map Services to Tethys, enabling apps to register and consume map/image services that require authentication without exposing credentials to the browser.
The new feature supports:
It also adds the supporting portal/admin UI, app-setting APIs, middleware for OAuth access requirements, CLI support for generating and managing a
SALT_KEY, documentation, and tests.Changes Made to Code
SecureMapServicemodel intethys_servicesfor registering secure external map servicesSecureMapServiceSettingsupport intethys_appsso apps can bind to secure servicesSALT_KEYgeneration and portal config bootstrappingRelated PRs, Issues, and Discussions
Additional Notes
SALT_KEYmust be configured inportal_config.yml.Quality Checks