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

mirrord Control API #2455

Open
9 tasks
aviramha opened this issue May 19, 2024 · 0 comments
Open
9 tasks

mirrord Control API #2455

aviramha opened this issue May 19, 2024 · 0 comments

Comments

@aviramha
Copy link
Member

aviramha commented May 19, 2024

I want users to have local access to information about current sessions on their machine.
The extensions would be able to show current sessions, query information about it and also do some actions.
This issue is a milestone/tracker for ongoing additions/features related to it.

The design I propose is that mirrord internal proxy will start listening via Unix Socket on ~/.mirrord/mirrord_{pid}.sock.
This will make any API able to find existing mirrord sessions quite easily by ls-ing the ~/.mirrord/ and will also make the control API only available to current user (eliminating potential security boundary issues)
The MVP would be implementing the internal proxy webserver that listens over unix socket (might worth doing it after upgrading dependencies since we have axum/hyper compat issue right now). and serves one API - config that returns current config.
This way we'll be able to implement #2447 in a nice way for IDE extensions.

Task list:

  • Expose WebServer on int proxy using unix socket
  • Serve /info to give current configuration
  • Add logic to IntelliJ to show current mirrord sessions and able to get config of each
  • Add logic to VSCode to show current mirrord sessions and able to get config of each
  • Add ability to kill a session (X button?) using the IDE - maybe the IDE can just rm the file as a way of closing?
  • Add marker for sessions that are ran using operator
  • Add a section in IDEs for seeing sessions in the cluster (using the operator)
  • Add layer connections information to /info endpoint - show all processes under the session that mirrord is loaded to
  • Add listened ports
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

No branches or pull requests

1 participant