swift-unidoc icon indicating copy to clipboard operation
swift-unidoc copied to clipboard

prepare to support maintainer actions

Open tayloraswift opened this issue 11 months ago • 1 comments

the next big priority for us should be supporting maintainer configuration through the web UI, since Swift Package Index’s experience with checked-in configuration files has not been great.

there will be some actions that are initially admin-only, and some actions available to maintainers.

  • Uplink, Unlink, Delete these have major potential to disrupt the site’s operations, so they should remain admin-only.
  • Hide/Unhide package ditto.
  • Rename package this should be okay
  • Transfer package realm this should be admin only for now, otherwise people could add things to realms they do not own
  • Create package realm should be admin-only, users should have realms created for them
  • Alias package should be admin-only, as it consumes names from the global namespace
  • Index package tag could be abused to DoS the site, so it has to be admin-only for now, but we should place a rate limit on it as it is a common task that maintainers would want to do. we should consider providing an alternative Queue package for tags fetch instead.

tayloraswift avatar Mar 13 '24 20:03 tayloraswift

tasks:

  • [x] Refactor Swiftinit.TagsTable to have three permissions levels instead of two. Hide admin-only actions from the first two levels.
  • [x] Show Package ID (not name) under Package Settings
  • [x] For maintainers, show when the package is scheduled to next have its tags fetched
  • [x] For maintainers, expose a function that queues a package for tags refetch.
  • [ ] Set up server plugin that periodically visits packages and regenerates missing alias records, which is needed to complete #102
  • [ ] Set up server plugin that periodically visits packages and checks if their owners are registered in the accounts DB, which is needed to complete #111

tayloraswift avatar Mar 13 '24 20:03 tayloraswift