Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub Mirrored Access Controls #187

Open
maxmurphySF opened this issue Aug 6, 2024 · 0 comments · May be fixed by #206
Open

GitHub Mirrored Access Controls #187

maxmurphySF opened this issue Aug 6, 2024 · 0 comments · May be fixed by #206
Assignees

Comments

@maxmurphySF
Copy link

maxmurphySF commented Aug 6, 2024

What

Implement a system in Backstage that mirrors access controls and permissions from GitHub, creating a personalized experience where users only see repositories they have access to in GitHub. This feature will integrate with GitHub's API to fetch and sync user permissions, then apply these permissions to Backstage's interface.

Key implementation tasks:

  1. Develop an integration with GitHub's API to fetch user permissions
  • Implement OAuth flow for user authentication
  • Retrieve user's repository access information
  1. Create a storage system in Backstage for GitHub permissions
  • Design and implement a database schema for storing user permissions
  • Implement a caching mechanism for efficient permission checks
  1. Develop a synchronization mechanism to keep Backstage permissions up-to-date with GitHub
  • Implement periodic syncing of permissions
  • Create a mechanism for immediate updates on user action (e.g., login)
  1. Modify Backstage's frontend to filter content based on user permissions
  • Implement permission checks in repository listing components
  • Update search functionality to respect user permissions
  1. Implement error handling and edge cases
  • Handle scenarios where GitHub API is unavailable
  • Manage conflicts between Backstage and GitHub permissions
  1. Create admin interface for managing permission syncing
  • Develop tools for manual permission refresh
  • Implement logging for sync activities and errors

Done When

  • GitHub API integration is complete and successfully fetches user permissions
  • Backstage correctly stores and caches GitHub permissions
  • Synchronization mechanism is implemented and keeps permissions up-to-date
  • Backstage frontend successfully filters content based on user's GitHub permissions
  • Error handling mechanisms are in place and tested
  • Admin interface for permission management is functional
  • Performance tests show the system can handle the expected user load
  • Security audit of the permission system is completed
  • User acceptance testing confirms the correct display of repositories based on GitHub permissions
  • Documentation for the new feature is created, including user guide and admin instructions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants