Skip to content

Commit 4e09639

Browse files
docs: markdown fixes and edits (#15527)
- **docs: improve admonition for need to add useHttpPath** - **docs: fix list item nesting** - **docs: fix list item nesting** - **docs: improve admonition for authentication** - **docs: tidy and update vault guide** - **docs: improve admonitions** - **docs: improve admonitions** - **docs: content edits, reference links to make copy easier to read** previews: - <https://coder.com/docs/@fix-guides-list-numbers/admin/external-auth> - <https://coder.com/docs/@fix-guides-list-numbers/admin/integrations/island> --------- Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com> Co-authored-by: EdwardAngert <EdwardAngert@users.noreply.github.com>
1 parent f6d37f6 commit 4e09639

File tree

8 files changed

+198
-209
lines changed

8 files changed

+198
-209
lines changed

docs/admin/external-auth.md

+11-10
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,7 @@ CODER_EXTERNAL_AUTH_0_REGEX=github\.company\.org
168168
169169
## JFrog Artifactory
170170

171-
See [this](../admin/integrations/jfrog-artifactory.md) guide on instructions on
172-
how to set up for JFrog Artifactory.
171+
Visit the [JFrog Artifactory](../admin/integrations/jfrog-artifactory.md) guide for instructions on how to set up for JFrog Artifactory.
173172

174173
## Custom scopes
175174

@@ -190,6 +189,16 @@ Multiple providers is an Enterprise and Premium feature.
190189

191190
Below is an example configuration with multiple providers:
192191

192+
<blockquote class="admonition warning">
193+
194+
**Note:** To support regex matching for paths like `github\.com/org`, add the following `git config` line to the [Coder agent startup script](https://registry.terraform.io/providers/coder/coder/latest/docs/resources/agent#startup_script):
195+
196+
```shell
197+
git config --global credential.useHttpPath true
198+
```
199+
200+
</blockquote>
201+
193202
```env
194203
# Provider 1) github.com
195204
CODER_EXTERNAL_AUTH_0_ID=primary-github
@@ -208,11 +217,3 @@ CODER_EXTERNAL_AUTH_1_AUTH_URL="https://github.example.com/login/oauth/authorize
208217
CODER_EXTERNAL_AUTH_1_TOKEN_URL="https://github.example.com/login/oauth/access_token"
209218
CODER_EXTERNAL_AUTH_1_VALIDATE_URL="https://github.example.com/api/v3/user"
210219
```
211-
212-
To support regex matching for paths (e.g. `github\.com/org`), you'll need to add
213-
this to the
214-
[Coder agent startup script](https://registry.terraform.io/providers/coder/coder/latest/docs/resources/agent#startup_script):
215-
216-
```shell
217-
git config --global credential.useHttpPath true
218-
```

docs/admin/integrations/island.md

+63-70
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,15 @@ April 24, 2024
1010

1111
---
1212

13-
[Island](https://www.island.io/) is an enterprise-grade browser, offering a
14-
Chromium-based experience similar to popular web browsers like Chrome and Edge.
15-
It includes built-in security features for corporate applications and data,
16-
aiming to bridge the gap between consumer-focused browsers and the security
17-
needs of the enterprise.
13+
[Island](https://www.island.io/) is an enterprise-grade browser, offering a Chromium-based experience
14+
similar to popular web browsers like Chrome and Edge. It includes built-in
15+
security features for corporate applications and data, aiming to bridge the gap
16+
between consumer-focused browsers and the security needs of the enterprise.
1817

19-
Coder natively integrates with Island's feature set, which include data loss
20-
protection (DLP), application awareness, browser session recording, and single
21-
sign-on (SSO). This guide intends to document these feature categories and how
22-
they apply to your Coder deployment.
18+
Coder natively integrates with Island's feature set, which include data
19+
loss protection (DLP), application awareness, browser session recording, and
20+
single sign-on (SSO). This guide intends to document these feature categories
21+
and how they apply to your Coder deployment.
2322

2423
## General Configuration
2524

@@ -33,90 +32,85 @@ creating browser policies.
3332

3433
## Advanced Data Loss Protection
3534

36-
Integrate Island's advanced data loss prevention (DLP) capabilities with Coder's
37-
cloud development environment (CDE), enabling you to control the “last mile”
38-
between developers CDE and their local devices, ensuring that sensitive IP
39-
remains in your centralized environment.
35+
Integrate Island's advanced data loss prevention (DLP) capabilities with
36+
Coder's cloud development environment (CDE), enabling you to control the
37+
"last mile" between developers' CDE and their local devices,
38+
ensuring that sensitive IP remains in your centralized environment.
4039

4140
### Block cut, copy, paste, printing, screen share
4241

43-
1. [Create a Data Sandbox Profile](https://documentation.island.io/docs/create-and-configure-a-data-sandbox-profile)
42+
1. [Create a Data Sandbox Profile](https://documentation.island.io/docs/create-and-configure-a-data-sandbox-profile).
4443

4544
1. Configure the following actions to allow/block (based on your security
46-
requirements):
45+
requirements).
4746

48-
- Screenshot and Screen Share
49-
- Printing
50-
- Save Page
51-
- Clipboard Limitations
47+
- Screenshot and Screen Share
48+
- Printing
49+
- Save Page
50+
- Clipboard Limitations
5251

53-
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general)
54-
to apply the Data Sandbox Profile
52+
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) to apply the Data Sandbox Profile.
5553

56-
1. Define the Coder Application group as the Destination Object
54+
1. Define the Coder Application group as the Destination Object.
5755

5856
1. Define the Data Sandbox Profile as the Action in the Last Mile Protection
59-
section
57+
section.
6058

6159
### Conditionally allow copy on Coder's CLI authentication page
6260

63-
1. [Create a URL Object](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general)
64-
with the following configuration:
61+
1. [Create a URL Object](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) with the following configuration.
6562

66-
- **Include**
67-
- **URL type**: Wildcard
68-
- **URL address**: `coder.example.com/cli-auth`
69-
- **Casing**: Insensitive
63+
- **Include**
64+
- **URL type**: Wildcard
65+
- **URL address**: `coder.example.com/cli-auth`
66+
- **Casing**: Insensitive
7067

71-
1. [Create a Data Sandbox Profile](https://documentation.island.io/docs/create-and-configure-a-data-sandbox-profile)
68+
1. [Create a Data Sandbox Profile](https://documentation.island.io/docs/create-and-configure-a-data-sandbox-profile).
7269

73-
1. Configure action to allow copy/paste
70+
1. Configure action to allow copy/paste.
7471

75-
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general)
76-
to apply the Data Sandbox Profile
72+
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) to apply the Data Sandbox Profile.
7773

78-
1. Define the URL Object you created as the Destination Object
74+
1. Define the URL Object you created as the Destination Object.
7975

8076
1. Define the Data Sandbox Profile as the Action in the Last Mile Protection
81-
section
77+
section.
8278

8379
### Prevent file upload/download from the browser
8480

85-
1. Create a Protection Profiles for both upload/download
81+
1. Create a Protection Profiles for both upload/download.
8682

87-
- [Upload documentation](https://documentation.island.io/docs/create-and-configure-an-upload-protection-profile)
88-
- [Download documentation](https://documentation.island.io/v1/docs/en/create-and-configure-a-download-protection-profile)
83+
- [Upload documentation](https://documentation.island.io/docs/create-and-configure-an-upload-protection-profile)
84+
- [Download documentation](https://documentation.island.io/v1/docs/en/create-and-configure-a-download-protection-profile)
8985

90-
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general)
91-
to apply the Protection Profiles
86+
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) to apply the Protection Profiles.
9287

93-
1. Define the Coder Application group as the Destination Object
88+
1. Define the Coder Application group as the Destination Object.
9489

9590
1. Define the applicable Protection Profile as the Action in the Data Protection
96-
section
91+
section.
9792

9893
### Scan files for sensitive data
9994

100-
1. [Create a Data Loss Prevention scanner](https://documentation.island.io/docs/create-a-data-loss-prevention-scanner)
95+
1. [Create a Data Loss Prevention scanner](https://documentation.island.io/docs/create-a-data-loss-prevention-scanner).
10196

102-
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general)
103-
to apply the DLP Scanner
97+
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) to apply the DLP Scanner.
10498

105-
1. Define the Coder Application group as the Destination Object
99+
1. Define the Coder Application group as the Destination Object.
106100

107-
1. Define the DLP Scanner as the Action in the Data Protection section
101+
1. Define the DLP Scanner as the Action in the Data Protection section.
108102

109103
## Application Awareness and Boundaries
110104

111105
Ensure that Coder is only accessed through the Island browser, guaranteeing that
112-
your browser-level DLP policies are always enforced, and developers cant
106+
your browser-level DLP policies are always enforced, and developers can't
113107
sidestep such policies simply by using another browser.
114108

115109
### Configure browser enforcement, conditional access policies
116110

117-
1. Create a conditional access policy for your configured identity provider.
111+
Create a conditional access policy for your configured identity provider.
118112

119-
> Note: the configured IdP must be the same for both Coder and Island
113+
Note that the configured IdP must be the same for both Coder and Island.
120114

121115
- [Azure Active Directory/Entra ID](https://documentation.island.io/docs/configure-browser-enforcement-for-island-with-azure-ad#create-and-apply-a-conditional-access-policy)
122116
- [Okta](https://documentation.island.io/docs/configure-browser-enforcement-for-island-with-okta)
@@ -129,35 +123,34 @@ screenshots, mouse clicks, and keystrokes.
129123

130124
### Activity Logging Module
131125

132-
1. [Create an Activity Logging Profile](https://documentation.island.io/docs/create-and-configure-an-activity-logging-profile)
126+
1. [Create an Activity Logging Profile](https://documentation.island.io/docs/create-and-configure-an-activity-logging-profile). Supported browser
127+
events include:
133128

134-
Supported browser events include:
129+
- Web Navigation
130+
- File Download
131+
- File Upload
132+
- Clipboard/Drag & Drop
133+
- Print
134+
- Save As
135+
- Screenshots
136+
- Mouse Clicks
137+
- Keystrokes
135138

136-
- Web Navigation
137-
- File Download
138-
- File Upload
139-
- Clipboard/Drag & Drop
140-
- Print
141-
- Save As
142-
- Screenshots
143-
- Mouse Clicks
144-
- Keystrokes
139+
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) to apply the Activity Logging Profile.
145140

146-
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general)
147-
to apply the Activity Logging Profile
148-
149-
1. Define the Coder Application group as the Destination Object
141+
1. Define the Coder Application group as the Destination Object.
150142

151143
1. Define the Activity Logging Profile as the Action in the Security &
152-
Visibility section
144+
Visibility section.
153145

154146
## Identity-aware logins (SSO)
155147

156-
Integrate Island's identity management system with Coder's authentication
157-
mechanisms to enable identity-aware logins.
148+
Integrate Island's identity management system with Coder's
149+
authentication mechanisms to enable identity-aware logins.
158150

159151
### Configure single sign-on (SSO) seamless authentication between Coder and Island
160152

161153
Configure the same identity provider (IdP) for both your Island and Coder
162-
deployment. Upon initial login to the Island browser, the user's session token
163-
will automatically be passed to Coder and authenticate their Coder session.
154+
deployment. Upon initial login to the Island browser, the user's session
155+
token will automatically be passed to Coder and authenticate their Coder
156+
session.

docs/admin/integrations/jfrog-artifactory.md

+23-44
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,11 @@ two type of modules that automate the JFrog Artifactory and Coder integration.
3636
### JFrog-OAuth
3737

3838
This module is usable by JFrog self-hosted (on-premises) Artifactory as it
39-
requires configuring a custom integration. This integration benefits from
40-
Coder's [external-auth](../../admin/external-auth.md) feature and allows each
41-
user to authenticate with Artifactory using an OAuth flow and issues user-scoped
42-
tokens to each user.
39+
requires configuring a custom integration. This integration benefits from Coder's [external-auth](../../admin/external-auth.md) feature allows each user to authenticate with Artifactory using an OAuth flow and issues user-scoped tokens to each user.
4340

4441
To set this up, follow these steps:
4542

46-
1. Modify your Helm chart `values.yaml` for JFrog Artifactory to add,
43+
1. Add the following to your Helm chart `values.yaml` for JFrog Artifactory. Replace `CODER_URL` with your JFrog Artifactory base URL:
4744

4845
```yaml
4946
artifactory:
@@ -62,17 +59,12 @@ To set this up, follow these steps:
6259
scope: "applied-permissions/user"
6360
```
6461
65-
> Note Replace `CODER_URL` with your Coder deployment URL, e.g.,
66-
> <coder.example.com>
67-
6862
1. Create a new Application Integration by going to
69-
<https://JFROG_URL/ui/admin/configuration/integrations/new> and select the
63+
`https://JFROG_URL/ui/admin/configuration/integrations/new` and select the
7064
Application Type as the integration you created in step 1.
7165

72-
![JFrog Platform new integration](../../images/guides/artifactory-integration/jfrog-oauth-app.png)
73-
74-
1. Add a new [external authentication](../../admin/external-auth.md) to Coder by
75-
setting these env variables,
66+
1. Add a new [external authentication](../../admin/external-auth.md) to Coder by setting these
67+
environment variables in a manner consistent with your Coder deployment. Replace `JFROG_URL` with your JFrog Artifactory base URL:
7668

7769
```env
7870
# JFrog Artifactory External Auth
@@ -86,12 +78,7 @@ To set this up, follow these steps:
8678
CODER_EXTERNAL_AUTH_1_SCOPES="applied-permissions/user"
8779
```
8880

89-
> Note Replace `JFROG_URL` with your JFrog Artifactory base URL, e.g.,
90-
> <example.jfrog.io>
91-
92-
1. Create or edit a Coder template and use the
93-
[JFrog-OAuth](https://registry.coder.com/modules/jfrog-oauth) module to
94-
configure the integration.
81+
1. Create or edit a Coder template and use the [JFrog-OAuth](https://registry.coder.com/modules/jfrog-oauth) module to configure the integration:
9582

9683
```tf
9784
module "jfrog" {
@@ -100,7 +87,7 @@ To set this up, follow these steps:
10087
agent_id = coder_agent.example.id
10188
jfrog_url = "https://jfrog.example.com"
10289
configure_code_server = true # this depends on the code-server
103-
username_field = "username" # If you are using GitHub to login to both Coder and Artifactory, use username_field = "username"
90+
username_field = "username" # If you are using GitHub to login to both Coder and Artifactory, use username_field = "username"
10491
package_managers = {
10592
"npm": "npm",
10693
"go": "go",
@@ -111,22 +98,17 @@ To set this up, follow these steps:
11198

11299
### JFrog-Token
113100

114-
This module makes use of the
115-
[Artifactory terraform provider](https://registry.terraform.io/providers/jfrog/artifactory/latest/docs)
116-
and an admin-scoped token to create user-scoped tokens for each user by matching
117-
their Coder email or username with Artifactory. This can be used for both SaaS
118-
and self-hosted(on-premises) Artifactory instances.
101+
This module makes use of the [Artifactory terraform
102+
provider](https://registry.terraform.io/providers/jfrog/artifactory/latest/docs) and an admin-scoped token to create
103+
user-scoped tokens for each user by matching their Coder email or username with
104+
Artifactory. This can be used for both SaaS and self-hosted (on-premises)
105+
Artifactory instances.
119106

120107
To set this up, follow these steps:
121108

122-
1. Get a JFrog access token from your Artifactory instance. The token must be an
123-
[admin token](https://registry.terraform.io/providers/jfrog/artifactory/latest/docs#access-token)
124-
with scope `applied-permissions/admin`.
125-
1. Create or edit a Coder template and use the
126-
[JFrog-Token](https://registry.coder.com/modules/jfrog-token) module to
127-
configure the integration and pass the admin token. It is recommended to
128-
store the token in a sensitive terraform variable to prevent it from being
129-
displayed in plain text in the terraform state.
109+
1. Get a JFrog access token from your Artifactory instance. The token must be an [admin token](https://registry.terraform.io/providers/jfrog/artifactory/latest/docs#access-token) with scope `applied-permissions/admin`.
110+
111+
1. Create or edit a Coder template and use the [JFrog-Token](https://registry.coder.com/modules/jfrog-token) module to configure the integration and pass the admin token. It is recommended to store the token in a sensitive Terraform variable to prevent it from being displayed in plain text in the terraform state:
130112

131113
```tf
132114
variable "artifactory_access_token" {
@@ -150,24 +132,21 @@ To set this up, follow these steps:
150132
```
151133

152134
<blockquote class="info">
135+
153136
The admin-level access token is used to provision user tokens and is never exposed to developers or stored in workspaces.
137+
154138
</blockquote>
155139

156-
If you do not want to use the official modules, you can check example template
157-
that uses Docker as the underlying compute
158-
[here](https://github.com/coder/coder/tree/main/examples/jfrog/docker). The same
159-
concepts apply to all compute types.
140+
If you don't want to use the official modules, you can read through the [example template](https://github.com/coder/coder/tree/main/examples/jfrog/docker), which uses Docker as the underlying compute. The
141+
same concepts apply to all compute types.
160142

161143
## Offline Deployments
162144

163-
See the
164-
[offline deployments](../templates/extending-templates/modules.md#offline-installations)
165-
section for instructions on how to use coder-modules in an offline environment
166-
with Artifactory.
145+
See the [offline deployments](../templates/extending-templates/modules.md#offline-installations) section for instructions on how to use Coder modules in an offline environment with Artifactory.
146+
147+
## Next Steps
167148

168-
## More reading
149+
- See the [full example Docker template](https://github.com/coder/coder/tree/main/examples/jfrog/docker).
169150

170-
- See the full example template
171-
[here](https://github.com/coder/coder/tree/main/examples/jfrog/docker).
172151
- To serve extensions from your own VS Code Marketplace, check out
173152
[code-marketplace](https://github.com/coder/code-marketplace#artifactory-storage).

0 commit comments

Comments
 (0)