Networking
Welcome to our page on networking in the Grader Than Workspace! Here, you'll find comprehensive documentation on how networking works within our platform, including information on network configurations, security protocols, and more. Whether you're new to Grader Than or an experienced user, this page is a valuable resource for understanding the ins and outs of networking in the Grader Than Workspace. Let's dive in!
Domain¶
At Grader Than, all of our work resources are hosted under the domain graderthan.com
. This means that all of our
applications, services, and data are accessed through this domain.
Additionally, each workspace within our platform has its own unique subdomain under *.workspace.graderthan.com
. This
subdomain is used to access all the resources specific to that workspace, including virtual machines, storage, and
networking.
By using a subdomain for each workspace, we ensure that each environment is completely isolated and secure, with no risk of interference from other workspaces or external sources. This design also allows for easier management and organization of multiple workspaces within a single account.
A workspace is accessible via it's unique domain. The unique domain matches the following pattern:
tool - This is a microservice running on the workspace. The list of micro-services are as follows:
Service | Description |
---|---|
ide |
This is the Grader Than IDE. This will connect you to the browser based VS Code IDE running in the workspace. Example URL: ide-{workspace-id}.workspace.graderthan.com |
desktop |
This is the Grader Than Desktop. This will connect you to the in-browser desktop attached to the running in the workspace. Example URL: desktop-{workspace-id}.workspace.graderthan.com |
port |
This will allow you to connect to your own custom service running on the workspace. By replacing port with an actual port number you will be able to connect to a running application listening on the given port. Example if you want to connect to an application listening on port 8000 the URL would be: 8000-{workspace-id}.workspace.graderthan.com . Read More |
workspace-id - This is the unique workspace session identifier. This will be different each time the workspace is
started. The identifier will always start with wss-
and end with a combination of alphanumeric characters. An example
workspace session identifier is wss-n1gvovn
.
Access¶
In this section, we'll cover everything you need to know about connecting to your workspace from various vectors, including the browser, local terminal, and workspace terminal.
Workspace access is authorized using HTTP cookies. Since workspace services are hosted under different subdomains a secure session cookie is created for each workspace service that allows you to access the workspace service within the same browser session. Because of the separation of domains this keeps all cookie information isolated to a specific workspace service and automatically invalidates all cookie-authorization information upon the workspace's termination.
If you attempt to access a workspace without the proper cookies, your access will be denied for security reasons. This ensures that only authorized users are able to access workspaces and that your data and resources are kept safe from unauthorized access.
To access a workspace from the browser, you must first be signed in to your Grader Than account. Once you're signed in, you can navigate to your desired workspace and start working right away.
By using cookies and requiring authentication for workspace access, we prioritize security and ensure that our users' workspaces remain secure and protected at all times.
Who can access?¶
Grader Than Workspaces are private by default and can only be accessed by the owner and authorized users. This means that only the workspace owner can access their own workspace.
However, in the case of student workspaces associated with a course, teachers may access these workspaces through their Grader Than account. This allows them to monitor student progress and provide guidance and feedback as needed.
Workspaces are not publicly accessible. This ensures that our workspaces remain secure and protected from unauthorized access.
Internal access caveat¶
It's important to note that you cannot access a workspace from within itself using the graderthan.com
url without
first signing in to your Grader Than account. This is because a workspace is just another computer and, as such, lacks
the proper HTTP authorization cookies until you are signed in. This will occur when you attempt to connect to the
workspace via the browser in the Grader Than Workspace desktop.
Attempting to access your workspace from within itself without first signing in will result in denied access. This is a security measure that helps to ensure that only authorized users can access a workspace and its resources.
Browser¶
To connect to a Grader Than workspace from within its own browser, you must first sign in to your Grader Than account in that same browser. Once you're signed in, you can access your workspace and all of its resources as you normally would.
This is because the workspace's browser is just like any other browser, and requires the proper HTTP authorization cookies to access Grader Than resources. By signing in to your Grader Than account in the workspace's browser, you'll be granting the browser access to these authorization cookies and allowing it to securely access your workspace.
Once you're signed in, you can navigate to your desired workspace and start working right away. All the features and functionality of Grader Than will be available to you, just as they would be in any other browser.
Terminal¶
All terminals in your workspace are running in the context of your workspace. This means using "localhost" as the hostname will make a direct connection to the workspace bypassing any authorization protocols. If you want to connect to a personal service running on the same workspace from within its workspace's terminal use "localhost".
For example, if you're running a web server on your workspace and the service is listening on port 8080, you may connect to it using the terminal in your Grader Than IDE or Grader Than Desktop with the following curl command:
This approach is the best way to access the service directly from the terminal. This is because "localhost" refers to the same workspace that you're currently working on, allowing you to access your personal services quickly and efficiently and bypassing Grader Than access protocols.Overall, using "localhost" to connect to your personal services running on your Grader Than workspace is a fast and convenient way to get started working on your projects.
Custom Services¶
A "custom service" refers to any service that is started on the workspace by the owner of the workspace, listening on a port, and is not the Grader Than IDE or desktop.
This can include services such as databases, web servers, or other applications that are unique to the owner's needs. By allowing users to run their own custom services on their workspace, Grader Than provides a highly customizable and flexible environment for development and experimentation.
To connect to a custom service running on your Grader Than workspace, you can specify the service's port number as the tool in the workspace's URL.
For example, if you have a web server running on port 8000, you can access it by navigating to the URL:
In your browser. This tells your browser to connect to the web server running on your workspace's port 8000.
By specifying the port number as the tool in the workspace's URL, you can connect to your custom services quickly and easily, using the browser. This makes it simple to work with your custom services without having to deal with complex network configuration or setup.