8000 chore: update RDP modules display names, icon and docs by matifali · Pull Request #175 · coder/registry · GitHub
[go: up one dir, main page]

Skip to content

chore: update RDP modules display names, icon and docs #175

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

Merged
merged 17 commits into from
Jul 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .icons/rdp.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 3 additions & 7 deletions MAINTAINER.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ brew install go
sudo apt install golang-go
```

## Daily Tasks

### Review PRs
## Reviewing a PR

Check that PRs have:

Expand All @@ -26,7 +24,7 @@ Check that PRs have:
- [ ] Formatted code (`bun run fmt`)
- [ ] Avatar image for new namespaces (`avatar.png` or `avatar.svg` in `.images/`)

#### Version Guidelines
### Version Guidelines

When reviewing PRs, ensure the version change follows semantic versioning:

Expand All @@ -42,7 +40,7 @@ PRs should clearly indicate the version change (e.g., `v1.2.3 → v1.2.4`).
go build ./cmd/readmevalidation && ./readmevalidation
```

## Releases
## Making a Release

### Create Release Tags

Expand Down Expand Up @@ -99,5 +97,3 @@ status: "community" # or "partner", "official"
- **Tests fail**: Ensure Docker with `--network=host`, check Terraform syntax
- **Wrong file structure**: Use `./scripts/new_module.sh` for new modules
- **Missing namespace avatar**: Must be `avatar.png` or `avatar.svg` in `.images/` directory

That's it. Keep it simple.
Binary file modified bun.lockb
Binary file not shown.
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,21 @@
"update-version": "./update-version.sh"
},
"devDependencies": {
"@types/bun": "^1.2.9",
"bun-types": "^1.1.23",
"@types/bun": "^1.2.18",
"bun-types": "^1.2.18",
"gray-matter": "^4.0.3",
"marked": "^12.0.2",
"prettier": "^3.3.3",
"prettier-plugin-sh": "^0.13.1",
"marked": "^16.0.0",
"prettier": "^3.6.2",
"prettier-plugin-sh": "^0.18.0",
"prettier-plugin-terraform-formatter": "^1.2.1"
},
"peerDependencies": {
"typescript": "^5.5.4"
"typescript": "^5.8.3"
},
"prettier": {
"plugins": [
"prettier-plugin-sh",
"prettier-plugin-terraform-formatter"
]
}
}
}
15 changes: 8 additions & 7 deletions registry/coder/modules/local-windows-rdp/README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
---
display_name: Windows RDP Desktop
display_name: RDP Desktop
description: Enable RDP on Windows and add a one-click Coder Desktop button for seamless access
icon: ../../../../.icons/desktop.svg
icon: ../../../../.icons/rdp.svg
maintainer_github: coder
verified: true
supported_os: [windows]
tags: [rdp, windows, desktop, remote]
tags: [rdp, windows, desktop, local]
---

# Windows RDP Desktop

This module enables Remote Desktop Protocol (RDP) on Windows workspaces and adds a one-click button to launch RDP sessions directly through [Coder Desktop](https://coder.com/docs/user-guides/desktop). It provides a complete, standalone solution for RDP access, eliminating the need for manual configuration or port forwarding through the Coder CLI.

> **Note**: [Coder Desktop](https://coder.com/docs/user-guides/desktop) is required on client devices to use the Local Windows RDP access feature.
> [!NOTE]
> [Coder Desktop](https://coder.com/docs/user-guides/desktop) is required on client devices to use the Local Windows RDP access feature.

```tf
module "rdp_desktop" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/local-windows-rdp/coder"
version = "1.0.0"
version = "1.0.1"
agent_id = coder_agent.main.id
agent_name = coder_agent.main.name
}
Expand Down Expand Up @@ -51,7 +52,7 @@ Uses default credentials (Username: `Administrator`, Password: `coderRDP!`):
module "rdp_desktop" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/local-windows-rdp/coder"
version = "1.0.0"
version = "1.0.1"
agent_id = coder_agent.main.id
agent_name = coder_agent.main.name
}
Expand All @@ -65,7 +66,7 @@ Specify a custom display name for the `coder_app` button:
module "rdp_desktop" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/local-windows-rdp/coder"
version = "1.0.0"
version = "1.0.1"
agent_id = coder_agent.windows.id
agent_name = "windows"
display_name = "Windows Desktop"
Expand Down
4 changes: 2 additions & 2 deletions registry/coder/modules/local-windows-rdp/main.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ describe("local-windows-rdp", async () => {
expect(app).not.toBeNull();
expect(app?.slug).toBe("rdp-desktop");
expect(app?.display_name).toBe("RDP Desktop");
expect(app?.icon).toBe("/icon/desktop.svg");
expect(app?.icon).toBe("/icon/rdp.svg");
expect(app?.external).toBe(true);

// Verify the URI format
Expand All @@ -95,7 +95,7 @@ describe("local-windows-rdp", async () => {
// Verify the script was created
expect(script).not.toBeNull();
expect(script?.display_name).toBe("Configure RDP");
expect(script?.icon).toBe("/icon/desktop.svg");
expect(script?.icon).toBe("/icon/rdp.svg");
expect(script?.run_on_start).toBe(true);
expect(script?.run_on_stop).toBe(false);

Expand Down
5 changes: 2 additions & 3 deletions registry/coder/modules/local-windows-rdp/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ data "coder_workspace" "me" {}
resource "coder_script" "rdp_setup" {
agent_id = var.agent_id
display_name = "Configure RDP"
icon = "/icon/desktop.svg"
icon = "/icon/rdp.svg"
script = templatefile("${path.module}/configure-rdp.ps1", {
username = var.username
password = var.password
Expand All @@ -73,9 +73,8 @@ resource "coder_app" "rdp_desktop" {
slug = "rdp-desktop"
display_name = var.display_name
url = "coder://${local.server_name}/v0/open/ws/${data.coder_workspace.me.name}/agent/${var.agent_name}/rdp?username=${var.username}&password=${var.password}"
icon = "/icon/desktop.svg"
icon = "/icon/rdp.svg"
external = true
order = var.order
group = var.group
}

38 changes: 15 additions & 23 deletions registry/coder/modules/windows-rdp/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
display_name: Windows RDP
display_name: RDP Web
description: RDP Server and Web Client, powered by Devolutions Gateway
icon: ../../../../.icons/desktop.svg
maintainer_github: coder
Expand All @@ -14,11 +14,10 @@ Enable Remote Desktop + a web based client on Windows workspaces, powered by [de
```tf
# AWS example. See below for examples of using this module with other providers
module "windows_rdp" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/windows-rdp/coder"
version = "1.2.1"
agent_id = resource.coder_agent.main.id
resource_id = resource.aws_instance.dev.id
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/windows-rdp/coder"
version = "1.2.2"
agent_id = resource.coder_agent.main.id
}
```

Expand All @@ -32,23 +31,21 @@ module "windows_rdp" {

```tf
module "windows_rdp" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/windows-rdp/coder"
version = "1.2.1"
agent_id = resource.coder_agent.main.id
resource_id = resource.aws_instance.dev.id
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/windows-rdp/coder"
version = "1.2.2"
agent_id = resource.coder_agent.main.id
}
```

### With Google Cloud

```tf
module "windows_rdp" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/windows-rdp/coder"
version = "1.2.1"
agent_id = resource.coder_agent.main.id
resource_id = resource.google_compute_instance.dev[0].id
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/windows-rdp/coder"
version = "1.2.2"
agent_id = resource.coder_agent.main.id
}
```

Expand All @@ -58,13 +55,8 @@ module "windows_rdp" {
module "windows_rdp" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/windows-rdp/coder"
version = "1.2.1"
version = "1.2.2"
agent_id = resource.coder_agent.main.id
resource_id = resource.aws_instance.dev.id
devolutions_gateway_version = "2025.1.6" # Specify a specific version
devolutions_gateway_version = "2025.2.2" # Specify a specific version
}
```

## Roadmap

- [ ] Test on Microsoft Azure.
5 changes: 0 additions & 5 deletions registry/coder/modules/windows-rdp/main.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import {

type TestVariables = Readonly<{
agent_id: string;
resource_id: string;
share?: string;
admin_username?: string;
admin_password?: string;
Expand Down Expand Up @@ -45,13 +44,11 @@ describe("Web RDP", async () => {
await runTerraformInit(import.meta.dir);
testRequiredVariables<TestVariables>(import.meta.dir, {
agent_id: "foo",
resource_id: "bar",
});

it("Has the PowerShell script install Devolutions Gateway", async () => {
const state = await runTerraformApply<TestVariables>(import.meta.dir, {
agent_id: "foo",
resource_id: "bar",
});

const lines = findWindowsRdpScript(state)
Expand Down Expand Up @@ -96,7 +93,6 @@ describe("Web RDP", async () => {
import.meta.dir,
{
agent_id: "foo",
resource_id: "bar",
},
);

Expand All @@ -116,7 +112,6 @@ describe("Web RDP", async () => {
import.meta.dir,
{
agent_id: "foo",
resource_id: "bar",
admin_username: customAdminUsername,
admin_password: customAdminPassword,
},
Expand Down
15 changes: 5 additions & 10 deletions registry/coder/modules/windows-rdp/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ terraform {
required_providers {
coder = {
source = "coder/coder"
version = ">= 0.17"
version = ">= 2.5"
}
}
}
Expand Down Expand Up @@ -35,11 +35,6 @@ variable "agent_id" {
description = "The ID of a Coder agent."
}

variable "resource_id" {
type = string
description = "The ID of the primary Coder resource (e.g. VM)."
}

variable "admin_username" {
type = string
default = "Administrator"
Expand All @@ -53,14 +48,14 @@ variable "admin_password" {

variable "devolutions_gateway_version" {
type = string
default = "2025.2.1"
default = "2025.2.2"
description = "Version of Devolutions Gateway to install. Defaults to the latest available version."
}

resource "coder_script" "windows-rdp" {
agent_id = var.agent_id
display_name = "windows-rdp"
icon = "/icon/desktop.svg"
icon = "/icon/rdp.svg"

script = templatefile("${path.module}/powershell-installation-script.tftpl", {
admin_username = var.admin_username
Expand Down Expand Up @@ -101,7 +96,7 @@ resource "coder_app" "rdp-docs" {
agent_id = var.agent_id
display_name = "Local RDP Docs"
slug = "rdp-docs"
icon = "https://raw.githubusercontent.com/matifali/logos/main/windows.svg"
url = "https://coder.com/docs/ides/remote-desktops#rdp-desktop"
icon = "/icon/windows.svg"
url = "https://coder.com/docs/user-guides/workspace-access/remote-desktops#rdp"
external = true
}
3 changes: 0 additions & 3 deletions registry/coder/templates/digitalocean-linux/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,13 @@ To deploy workspaces as DigitalOcean Droplets, you'll need:
- DigitalOcean [personal access token (PAT)](https://docs.digitalocean.com/reference/api/create-personal-access-token)

- DigitalOcean project ID (you can get your project information via the `doctl` CLI by running `doctl projects list`)

- Remove the following sections from the `main.tf` file if you don't want to
associate your workspaces with a project:

- `variable "project_uuid"`
- `resource "digitalocean_project_resources" "project"`

- **Optional:** DigitalOcean SSH key ID (obtain via the `doctl` CLI by running
`doctl compute ssh-key list`)

- Note that this is only required for Fedora images to work.

### Authentication
Expand Down
1 change: 0 additions & 1 deletion registry/coder/templates/gcp-devcontainer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ a service account:

1. Click **Create and continue**, and choose the following IAM roles to grant to
the service account:

- Compute Admin
- Service Account User

Expand Down
1 change: 0 additions & 1 deletion registry/coder/templates/gcp-linux/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ a service account:

1. Click **Create and continue**, and choose the following IAM roles to grant to
the service account:

- Compute Admin
- Service Account User

Expand Down
1 change: 0 additions & 1 deletion registry/coder/templates/gcp-vm-container/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ a service account:

1. Click **Create and continue**, and choose the following IAM roles to grant to
the service account:

- Compute Admin
- Service Account User

Expand Down
1 change: 0 additions & 1 deletion registry/coder/templates/gcp-windows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ a service account:

1. Click **Create and continue**, and choose the following IAM roles to grant to
the service account:

- Compute Admin
- Service Account User

Expand Down
Loading
0