OpenFn / OpenFn/lightning

Project slugs: stable project identifiers in editor URLs (replaces the sandbox in-memory project-id map)

Open
#4,935 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

tech-debt
Dominant language
Elixir
Stars
296
Forks
86
Avg merge
1d 13h
Merged PRs (30d)
50

Description

As a developer moving around a workflow's versions and sandboxes, I want projects (including sandboxes) to have stable slugs used in editor URLs, so that navigation and cross-project diffing don't depend on the project UID.

What's broken

The collaborative editor URL carries the project UID. A sandbox is a separate project with a different UID, so moving between a live workflow and its sandbox means switching projects and URLs. There is no stable, human-meaningful identifier that a sandbox can share with its parent.

Sandbox DevX Phase 1 (in-editor version and sandbox switching, #4865) ships an interim in-memory sandbox-to-project map as a deliberate shortcut. This is the proper fix that replaces it.

What to do

Introduce a slug on projects and use it in editor routes, so a sandbox can carry its parent's slug and switching does not need the in-memory map. Keep UID routes working during the transition, and backfill slugs for existing projects.

Why this is standalone, not part of the Sandbox DevX epic

Slugs are app-wide routing infrastructure, broader than sandboxes, and they also unlock proper cross-project and cross-version diffing (currently blocked on comparing across different UIDs). Tracking it on its own so it is reused platform-wide rather than scoped to one epic.

Acceptance criteria

  • Editor URLs use project slugs.
  • Switching between a workflow's sandboxes and versions works via slugs, without the interim in-memory map.
  • Existing projects get slugs (backfill); old UID URLs keep working during the transition.
  • The interim map in #4865 can then be removed.

Links

Replaces the interim map in #4865. The map-versus-slugs direction is one of the open decisions tracked in #4922. Enables the cross-UID diff work.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading #4865 and the map-versus-slugs decision tracked in #4922; the issue names no files or tests. Trace the editor URL and project/sandbox routing entry points, then verify slug-based switching, UID URL compatibility, existing-project backfill, and removal of the interim map.

Written by the indexing model from the issue text.

Assessment

Tech stack
elixir
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.