Repository navigation
feat: team-scoped project isolation and legacy seed data removal - #14
Merged
Merged
Conversation
Replace hardcoded NovaPay seed data with cleanup logic that removes legacy projects on plugin activation. Add project scoping by team via X-Oli-Team-Scope header so each workspace only sees its own projects, issues, labels, and cycles. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
Summary
Remove hardcoded NovaPay seed data and add team-level project scoping to isolate projects per workspace.
Seed data cleanup: Replaces
seedSampleData()withcleanupSeedSampleData()that runs on plugin activation to delete the 4 legacy Spanish-language projects (Plataforma de Pagos, App Móvil, Panel de Administración, Infraestructura) along with their issues, labels, and cycles.Project scoping: Introduces a
Scopefield on projects and anX-Oli-Team-ScopeHTTP header. The desktop app extracts the current team slug from the Mattermost URL and sends it with every plugin API request. The server filters all project/issue/label/cycle responses to only return data matching the requesting team's scope. Projects created without a scope are hidden from scoped requests.All API endpoints updated:
listProjects,createProject,getProject,updateProject,deleteProject, and all issue/label/cycle/search/context endpoints now enforce scope boundaries.Ticket Link
N/A
Checklist
Device Information
This PR was tested on: macOS (Darwin 24.6.0)
Release Note