[CLEAN] Synthetic Benchmark PR #41312 - feat: Static URL Support for Applications and Pages #35
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.
Benchmark PR appsmithorg#41312
Type: Clean (correct implementation)
Original PR Title: feat: Static URL Support for Applications and Pages
Original PR Description: ## 🎯 Overview
This PR implements Static URL functionality for Appsmith applications and pages, allowing users to create clean, URLs without auto-generated IDs. This feature is gated behind the
release_static_url_enabledfeature flag.🚀 Key Features
1. Application-Level Static URLs
my-appinstead ofuntitled-application-5)2. Page-Level Static URLs
dashboardinstead ofpage1-68fb0a086001f8101c93e34q)3. URL Format Changes
Before (Legacy Format):
After (Static URL Format):
🏗️ Technical Implementation
New Routes
BUILDER_PATH_STATIC:/app/:staticApplicationSlug/:staticPageSlug/editVIEWER_PATH_STATIC:/app/:staticApplicationSlug/:staticPageSlugNew Redux Actions
ENABLE_STATIC_URL/DISABLE_STATIC_URL: Toggle static URL featurePERSIST_APP_SLUG/PERSIST_PAGE_SLUG: Save application/page slugsVALIDATE_APP_SLUG/VALIDATE_PAGE_SLUG: Validate slug availabilityFETCH_APP_SLUG_SUGGESTION: Get auto-generated suggestionsNew API Endpoints
Application APIs
POST /api/v1/applications/:applicationId/static-url- Enable static URL with initial slugPUT /api/v1/applications/:applicationId/static-url- Update application slugDELETE /api/v1/applications/:applicationId/static-url- Disable static URLGET /api/v1/applications/:applicationId/static-url/:uniqueSlug- Validate application slug availabilityGET /api/v1/applications/:applicationId/static-url/suggest-app-slug- Get slug suggestionPage APIs
PATCH /api/v1/pages/static-url- Update page slugGET /api/v1/pages/:pageId/static-url/verify/:uniqueSlug- Validate page slug availabilityURL Assembly Enhancements
URLAssemblyto support static URL generationURL_TYPE.STATICfor static URL routingstaticPageSlugis not set, falls back to regularpageSlug🎨 UI Components
General Settings (Application Level)
Page Settings (Page Level)
StaticURLConfirmationModal
🔄 State Management
Application Reducer
uniqueSlug: Stores the application's static slugstaticUrlEnabled: Boolean flag for static URL statusPage List Reducer
uniqueSlug: Stores each page's static slugApplications UI Reducer
isValidatingAppSlug: Validation in progressisApplicationSlugValid: Validation resultisFetchingAppSlugSuggestion: Fetching suggestionappSlugSuggestion: Auto-generated suggestionisPersistingAppSlug: Save in progress🛡️ Validation Rules
Application/Page Slug Requirements:
🔀 Navigation & Routing
Route Matching Updates
matchBuilderPathto includeBUILDER_PATH_STATICmatchViewerPathto includeVIEWER_PATH_STATICstaticApplicationSlugandstaticPageSlugPage Navigation
useStaticUrlGenerationfor generating static URLs in navigationuseNavigateToAnotherPageto support static URLs📦 Key Files Changed
Core Logic:
URLAssembly.ts: URL generation logic with static URL supportApplicationSagas.tsx: Sagas for enable/disable/persist operationsPageSagas.tsx: Page-level slug persistenceappRoutes.ts: New static URL routesUI Components:
GeneralSettings.tsx: Application-level static URL configurationPageSettings.tsx: Page-level static URL configurationStaticURLConfirmationModal.tsx: Confirmation dialog (new)UrlPreview.tsx: URL preview component (new)State Management:
applicationsReducer.tsx: Application UI stateappReducer.ts: Application entity statepageListReducer.tsx: Page list state⚙️ Feature Flag
release_static_url_enabled: Controls visibility of static URL featuresAutomation
/ok-to-test tags="@tag.All"
🔍 Cypress test results
Tip
🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/18936467359
Commit: a74b4ac
Cypress dashboard.
Tags:
@tag.AllSpec:
Thu, 30 Oct 2025 10:56:15 UTC
Communication
Should the DevRel and Marketing teams inform users about this change?
Summary by CodeRabbit
New Features
Bug Fixes / Improvements
Original PR URL: appsmithorg#41312