Bulk-assign visibility to existing production links #37

Open
opened 2026-06-08 03:21:35 +00:00 by ldraney · 0 comments
Owner

Type

Feature

Lineage

Follow-up from spike #17 (docs/visibility.md — Current Link Inventory). Depends on #30 (visibility column) and #35 (visibility UI).

Repo

ldraney/palinks

User Story

As Lucas
I want all existing links assigned to the correct visibility tier
So that the visibility system works correctly from day one

Context

After the visibility column and UI ship, all existing links default to superadmin. This one-time task assigns each link to its correct tier based on the inventory in docs/visibility.md. Can be a rake task or seed script. The inventory categorizes links into infrastructure (superadmin), dev tools (superadmin), shared projects (member), and portfolio (public).

File Targets

  • lib/tasks/assign_visibility.rake — new rake task
  • Or extend db/seeds.rb — update existing seed entries with visibility

Feature Flag

None — one-time data migration, not a toggleable feature.

Acceptance Criteria

  • All infrastructure links (ArgoCD, Harbor, Grafana, etc.) set to superadmin
  • All dev tool links set to superadmin
  • Shared project links set to member
  • Portfolio and public-facing links set to public
  • Task is idempotent (safe to run multiple times)
  • Output logs which links were updated

Test Expectations

  • Manual: run task, verify link visibility assignments match inventory
  • Run: bundle exec rails assign_visibility or equivalent

Constraints

  • Follow tier assignments from docs/visibility.md inventory tables
  • Must be idempotent
  • Run after visibility column migration (#30) has been applied

Checklist

  • PR opened
  • Task runs successfully
  • No unrelated changes
  • project-palinks — project page
  • docs/visibility.md — link inventory with tier assignments
  • #30 — visibility column (dependency)
  • #35 — visibility UI (dependency)
### Type Feature ### Lineage Follow-up from spike #17 (`docs/visibility.md` — Current Link Inventory). Depends on #30 (visibility column) and #35 (visibility UI). ### Repo `ldraney/palinks` ### User Story As Lucas I want all existing links assigned to the correct visibility tier So that the visibility system works correctly from day one ### Context After the visibility column and UI ship, all existing links default to `superadmin`. This one-time task assigns each link to its correct tier based on the inventory in `docs/visibility.md`. Can be a rake task or seed script. The inventory categorizes links into infrastructure (superadmin), dev tools (superadmin), shared projects (member), and portfolio (public). ### File Targets - `lib/tasks/assign_visibility.rake` — new rake task - Or extend `db/seeds.rb` — update existing seed entries with visibility ### Feature Flag None — one-time data migration, not a toggleable feature. ### Acceptance Criteria - [ ] All infrastructure links (ArgoCD, Harbor, Grafana, etc.) set to `superadmin` - [ ] All dev tool links set to `superadmin` - [ ] Shared project links set to `member` - [ ] Portfolio and public-facing links set to `public` - [ ] Task is idempotent (safe to run multiple times) - [ ] Output logs which links were updated ### Test Expectations - [ ] Manual: run task, verify link visibility assignments match inventory - Run: `bundle exec rails assign_visibility` or equivalent ### Constraints - Follow tier assignments from `docs/visibility.md` inventory tables - Must be idempotent - Run after visibility column migration (#30) has been applied ### Checklist - [ ] PR opened - [ ] Task runs successfully - [ ] No unrelated changes ### Related - `project-palinks` — project page - `docs/visibility.md` — link inventory with tier assignments - #30 — visibility column (dependency) - #35 — visibility UI (dependency)
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/palinks#37
No description provided.