From 46d90a5fd913eb369372fe4762ac63b5fac17822 Mon Sep 17 00:00:00 2001 From: Atif Ali Date: Mon, 10 Aug 2026 20:19:43 +0000 Subject: [PATCH 1/5] docs: clarify JFrog OAuth setup for SaaS and self-hosted Artifactory --- docs/admin/integrations/jfrog-artifactory.md | 23 +++++++++++--------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/admin/integrations/jfrog-artifactory.md b/docs/admin/integrations/jfrog-artifactory.md index 9450c976493..460890de614 100644 --- a/docs/admin/integrations/jfrog-artifactory.md +++ b/docs/admin/integrations/jfrog-artifactory.md @@ -25,12 +25,19 @@ two type of modules that automate the JFrog Artifactory and Coder integration. ### JFrog-OAuth -This module is usable by JFrog self-hosted (on-premises) Artifactory as it -requires configuring a custom integration. This integration benefits from Coder's [external-auth](../external-auth/index.md) feature allows each user to authenticate with Artifactory using an OAuth flow and issues user-scoped tokens to each user. +This module works with both JFrog SaaS (for example, `example.jfrog.io`) and self-hosted (on-premises) Artifactory. It uses Coder's [external-auth](../external-auth/index.md) feature so each user authenticates with Artifactory through an OAuth flow, and Coder issues a user-scoped access token to each workspace. To set this up, follow these steps: -1. Add the following to your Helm chart `values.yaml` for JFrog Artifactory. Replace `CODER_URL` with your JFrog Artifactory base URL: +1. Create an application integration in Artifactory. Use `https://CODER_URL/external-auth/jfrog/callback` (your Coder deployment URL) as the callback URL and `applied-permissions/user` as the scope. + + **JFrog SaaS** (`example.jfrog.io`): Create the integration from the JFrog Platform UI as an administrator: + + 1. Go to **Administration > General Management > Manage Integrations**, or open `https://JFROG_URL/ui/admin/configuration/integrations/application` directly. + 1. Click **New Integration** and select **External Applications**. + 1. On the **Create New Application Integration** form, set **Application Name** to `Coder`, set **Application Type** to **Custom Integration**, enter the callback URL, then click **Generate Client ID & Secret**. + + **Self-hosted (on-premises)**: First register an integration template in your Helm chart `values.yaml`, then create the application integration in the UI and select that template as the **Application Type**. Replace `CODER_URL` with your Coder deployment URL: ```yaml artifactory: @@ -49,12 +56,8 @@ To set this up, follow these steps: scope: "applied-permissions/user" ``` -1. Create a new Application Integration by going to - `https://JFROG_URL/ui/admin/configuration/integrations/app-integrations/new` and select the - Application Type as the integration you created in step 1 or `Custom Integration` if you are using SaaS instance i.e. example.jfrog.io. - 1. Add a new [external authentication](../external-auth/index.md) to Coder by setting these - environment variables in a manner consistent with your Coder deployment. Replace `JFROG_URL` with your JFrog Artifactory base URL: + environment variables in a manner consistent with your Coder deployment. Replace `JFROG_URL` with your JFrog Artifactory base URL, and the client ID and secret with the values from step 1: ```dotenv # JFrog Artifactory External Auth @@ -73,8 +76,8 @@ To set this up, follow these steps: ```tf module "jfrog" { count = data.coder_workspace.me.start_count - source = "registry.coder.com/modules/jfrog-oauth/coder" - version = "1.0.19" + source = "registry.coder.com/coder/jfrog-oauth/coder" + version = "1.2.4" agent_id = coder_agent.example.id jfrog_url = "https://example.jfrog.io" username_field = "username" # If you are using GitHub to login to both Coder and Artifactory, use username_field = "username" From 45bbb7bcf81e651754ced88e2faa2f1bddb42da6 Mon Sep 17 00:00:00 2001 From: Atif Ali Date: Mon, 10 Aug 2026 20:20:20 +0000 Subject: [PATCH 2/5] docs: update JFrog-Token module source path and version --- docs/admin/integrations/jfrog-artifactory.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/admin/integrations/jfrog-artifactory.md b/docs/admin/integrations/jfrog-artifactory.md index 460890de614..f07d92d3ed2 100644 --- a/docs/admin/integrations/jfrog-artifactory.md +++ b/docs/admin/integrations/jfrog-artifactory.md @@ -112,8 +112,8 @@ To set this up, follow these steps: } module "jfrog" { - source = "registry.coder.com/modules/jfrog-token/coder" - version = "1.0.30" + source = "registry.coder.com/coder/jfrog-token/coder" + version = "1.2.2" agent_id = coder_agent.example.id jfrog_url = "https://XXXX.jfrog.io" artifactory_access_token = var.artifactory_access_token From 8913057c49d50c003da1faeaa5735e99db6b7fd4 Mon Sep 17 00:00:00 2001 From: Atif Ali Date: Mon, 10 Aug 2026 20:40:26 +0000 Subject: [PATCH 3/5] docs: relax JFrog module version constraints to ~> 1.0 --- docs/admin/integrations/jfrog-artifactory.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/admin/integrations/jfrog-artifactory.md b/docs/admin/integrations/jfrog-artifactory.md index f07d92d3ed2..f8f0a00baa1 100644 --- a/docs/admin/integrations/jfrog-artifactory.md +++ b/docs/admin/integrations/jfrog-artifactory.md @@ -77,7 +77,7 @@ To set this up, follow these steps: module "jfrog" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/jfrog-oauth/coder" - version = "1.2.4" + version = "~> 1.0" agent_id = coder_agent.example.id jfrog_url = "https://example.jfrog.io" username_field = "username" # If you are using GitHub to login to both Coder and Artifactory, use username_field = "username" @@ -113,7 +113,7 @@ To set this up, follow these steps: module "jfrog" { source = "registry.coder.com/coder/jfrog-token/coder" - version = "1.2.2" + version = "~> 1.0" agent_id = coder_agent.example.id jfrog_url = "https://XXXX.jfrog.io" artifactory_access_token = var.artifactory_access_token From b9e90bc7afbf213f227961f81e2db9027bd77949 Mon Sep 17 00:00:00 2001 From: Atif Ali Date: Mon, 10 Aug 2026 20:47:57 +0000 Subject: [PATCH 4/5] docs: address review, use select for UI and one sentence per line --- docs/admin/integrations/jfrog-artifactory.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/docs/admin/integrations/jfrog-artifactory.md b/docs/admin/integrations/jfrog-artifactory.md index f8f0a00baa1..46421a199e7 100644 --- a/docs/admin/integrations/jfrog-artifactory.md +++ b/docs/admin/integrations/jfrog-artifactory.md @@ -25,19 +25,22 @@ two type of modules that automate the JFrog Artifactory and Coder integration. ### JFrog-OAuth -This module works with both JFrog SaaS (for example, `example.jfrog.io`) and self-hosted (on-premises) Artifactory. It uses Coder's [external-auth](../external-auth/index.md) feature so each user authenticates with Artifactory through an OAuth flow, and Coder issues a user-scoped access token to each workspace. +This module works with both JFrog SaaS (for example, `example.jfrog.io`) and self-hosted (on-premises) Artifactory. +It uses Coder's [external-auth](../external-auth/index.md) feature so each user authenticates with Artifactory through an OAuth flow, and Coder issues a user-scoped access token to each workspace. To set this up, follow these steps: -1. Create an application integration in Artifactory. Use `https://CODER_URL/external-auth/jfrog/callback` (your Coder deployment URL) as the callback URL and `applied-permissions/user` as the scope. +1. Create an application integration in Artifactory. + Use `https://CODER_URL/external-auth/jfrog/callback` (your Coder deployment URL) as the callback URL and `applied-permissions/user` as the scope. **JFrog SaaS** (`example.jfrog.io`): Create the integration from the JFrog Platform UI as an administrator: 1. Go to **Administration > General Management > Manage Integrations**, or open `https://JFROG_URL/ui/admin/configuration/integrations/application` directly. - 1. Click **New Integration** and select **External Applications**. - 1. On the **Create New Application Integration** form, set **Application Name** to `Coder`, set **Application Type** to **Custom Integration**, enter the callback URL, then click **Generate Client ID & Secret**. + 1. Select **New Integration**, then select **External Applications**. + 1. On the **Create New Application Integration** form, set **Application Name** to `Coder`, set **Application Type** to **Custom Integration**, enter the callback URL, then select **Generate Client ID & Secret**. - **Self-hosted (on-premises)**: First register an integration template in your Helm chart `values.yaml`, then create the application integration in the UI and select that template as the **Application Type**. Replace `CODER_URL` with your Coder deployment URL: + **Self-hosted (on-premises)**: First register an integration template in your Helm chart `values.yaml`, then create the application integration in the UI and select that template as the **Application Type**. + Replace `CODER_URL` with your Coder deployment URL: ```yaml artifactory: @@ -56,8 +59,8 @@ To set this up, follow these steps: scope: "applied-permissions/user" ``` -1. Add a new [external authentication](../external-auth/index.md) to Coder by setting these - environment variables in a manner consistent with your Coder deployment. Replace `JFROG_URL` with your JFrog Artifactory base URL, and the client ID and secret with the values from step 1: +1. Add a new [external authentication](../external-auth/index.md) to Coder by setting these environment variables in a manner consistent with your Coder deployment. + Replace `JFROG_URL` with your JFrog Artifactory base URL, and the client ID and secret with the values from step 1: ```dotenv # JFrog Artifactory External Auth From 56093f8732fabba5ef50f4f885d388860ec65816 Mon Sep 17 00:00:00 2001 From: Atif Ali Date: Mon, 10 Aug 2026 20:58:53 +0000 Subject: [PATCH 5/5] docs: apply review suggestions for JFrog OAuth setup steps --- docs/admin/integrations/jfrog-artifactory.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/admin/integrations/jfrog-artifactory.md b/docs/admin/integrations/jfrog-artifactory.md index 46421a199e7..45beb743b33 100644 --- a/docs/admin/integrations/jfrog-artifactory.md +++ b/docs/admin/integrations/jfrog-artifactory.md @@ -26,20 +26,22 @@ two type of modules that automate the JFrog Artifactory and Coder integration. ### JFrog-OAuth This module works with both JFrog SaaS (for example, `example.jfrog.io`) and self-hosted (on-premises) Artifactory. -It uses Coder's [external-auth](../external-auth/index.md) feature so each user authenticates with Artifactory through an OAuth flow, and Coder issues a user-scoped access token to each workspace. +It uses Coder's [external-auth](../external-auth/index.md) feature, so each user authenticates with Artifactory through an OAuth flow, and Coder issues a user-scoped access token to each workspace. To set this up, follow these steps: 1. Create an application integration in Artifactory. - Use `https://CODER_URL/external-auth/jfrog/callback` (your Coder deployment URL) as the callback URL and `applied-permissions/user` as the scope. + Use `https:///external-auth/jfrog/callback` (your Coder deployment URL) as the callback URL and `applied-permissions/user` as the scope. **JFrog SaaS** (`example.jfrog.io`): Create the integration from the JFrog Platform UI as an administrator: - 1. Go to **Administration > General Management > Manage Integrations**, or open `https://JFROG_URL/ui/admin/configuration/integrations/application` directly. - 1. Select **New Integration**, then select **External Applications**. - 1. On the **Create New Application Integration** form, set **Application Name** to `Coder`, set **Application Type** to **Custom Integration**, enter the callback URL, then select **Generate Client ID & Secret**. + 1. Go to **Administration** > **General Management** > **Manage Integrations**, or open `https:///ui/admin/configuration/integrations/application` directly. + 1. Select **New Integration**. + 1. Select **External Applications**. + 1. On the **Create New Application Integration** form, set **Application Name** to `Coder`, set **Application Type** to **Custom Integration**, and enter the callback URL. + 1. Select **Generate Client ID & Secret**. - **Self-hosted (on-premises)**: First register an integration template in your Helm chart `values.yaml`, then create the application integration in the UI and select that template as the **Application Type**. + **Self-hosted (on-premises)**: First register an integration template in your Helm chart `values.yaml`, then create the application integration in the UI, and select that template as the **Application Type**. Replace `CODER_URL` with your Coder deployment URL: ```yaml