Files
pad/internal/server
xarmian 117221c73d feat: auth-scoped workspace resolver with UUID support
Update workspace resolution to support both slugs and UUIDs, with
auth-scoped slug resolution for non-admin users (TASK-412).

Store:
- New GetWorkspacesBySlugForUser(slug, userID) method that finds
  workspaces matching a slug where the user is owner or member

Server:
- New resolveWorkspace() method: UUID → direct lookup, slug → auth-scoped
  for regular users, global for admins/unauthenticated
- RequireWorkspaceAccess middleware uses resolveWorkspace() and stores
  resolved workspace ID in context (ctxResolvedWorkspaceID)
- getWorkspaceID() reads from context (fast path) or resolves directly
  (fallback), eliminating redundant database lookups

API URL pattern unchanged — /api/v1/workspaces/{ws}/... where {ws}
now accepts both slug and UUID. CLI and frontend unaffected.
2026-04-10 23:29:29 +00:00
..
2026-03-26 01:52:36 +00:00
2026-03-26 01:52:36 +00:00