- Notifications
You must be signed in to change notification settings - Fork928
docs: restructure docs#14182
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Closed
Uh oh!
There was an error while loading.Please reload this page.
Closed
docs: restructure docs#14182
Changes from1 commit
Commits
Show all changes
96 commits Select commitHold shift + click to select a range
13d4f56
docs offsite day 1
bpmct3cf73ed
updated coder tour and screenshots
stirby5bcaf81
edit manifest
bpmcte97dcba
incomplete info on schedule
stirby1352640
changes
bpmct56ef29e
rebase on `main`
matifalid9b2b76
removed stub on coder tour
stirbyde4599c
workspace README page and tour cleanup
stirby2c277df
fixed tour MD linksg
stirbyad4bb0c
replaced broken pngs
stirby920ac48
moved workspace access to a directory
stirby133721a
rebase on `main`
matifali762b680
workspace access docs
stirbyf74f54d
user guides manifest
stirbyeab79b3
rebase on `main`
matifaliaf700c3
vscode
stirby442b6fd
add schedule
bpmctc4de546
title case for user guides
stirby248bbc2
workspace scheduling
stirby48bdc86
added workspace updating to main user guide
stirby39185ed
dotfiles page done
stirby0cc2d32
fleshed out vscode page
stirbybec25cb
weekend
stirby79ee974
templates
bpmcta3f2e84
integrations
stirbyc0784a4
removed other platforms page
stirby1753902
cleanup
stirby90d92e1
some reorg and writing
bpmct03f5a93
migrated guides to tutorials
stirbyee2c576
infrastructure landing page
bpmct2dcf91e
add guide for creating templates
bpmct1907108
new format
bpmct1215e22
consider linking to tf
bpmctca1a458
install landing page
bpmct9b55009
post pto sync
stirby6267964
in flight admin-workspace changes
stirby13716a1
fixing images in about page
stirby17fcea1
reference/cli proper structure
bpmctfc159ce
rebase on `main`
matifali330132b
rebase on `main`
matifali1efad16
fixups for cli and api gen
bpmct215a3ac
modify to look for Command Line nested in manifest
bpmct0041e8c
rebase on `main`
matifali822130a
wip
matifali293e07c
wip
matifali259668b
add screenshots
bpmctbcfe8ba
workspace lifecycle WIP
stirbydd73049
added workspace lifecycle to manifest for preview
stirbyd6f2a8c
moved resource definition outside of user guides
stirby15592cb
fixed manifext typo
stirby875274d
rough draft of workspace lifecycle
stirbyce0cd54
cleaned up user guide for workspace scheduling
stirbyd47245b
linked workspace scheduling guide in workspace lifecycle
stirbybc7db22
started 'extending templates' rearranged resource persistence
stirby2da48b9
copied secrets.md under admin/security
stirby5d07ed9
wip
matifali1235238
partial completion of admin/templates/extending-templates
stirby22c4a55
additional extending templates refactors
stirby8add1d7
finished 'extending templates' with variables.md from old docs
stirby51365cd
added manifest for extending templates
stirby3a46ccd
added secrets to manifest
stirby6c269eb
added FAQs as a subsection of guides. Going to keep them for now.
stirby9ac4f3f
migrated networking docs
stirbycf13803
added control plane configuration docs
stirby4098a8c
add integration guides
matifali34b2ed6
fix manifest
matifali5ca11b0
fmt and typos
matifali1447aea
fixup!
matifalid00cc9b
fix some links
matifalicafa035
fixup!
matifali7963a1a
`make fmt`
matifaliaa7d43c
`make gen`
matifaliadfc34c
`make fmt`
matifali1d21c9a
fixup!
matifali5f5b3d9
fix capitalization
matifali4e43821
add scaling to manifest
matifali0d20438
fix link
matifali0763b35
rebase on `main`
matifalibf5535c
rebase on `main`
matifali2e4b218
fmt and typos
matifali0996219
`make fmt`
matifali990d440
`make gen`
matifali66ff05e
chore: bump github.com/ory/dockertest/v3 from 3.10.0 to 3.11.0 (#14237)
dependabot[bot]3b099fd
added workspace proxies from lost branch
stirby2f14a08
chore(docs): move scaling docs under admin/infrastructure (#14270)
stirbyad16573
chore(docs): add WebRDP to restructure docs (#14385)
stirby579778e
wip
matifalie8eb3e4
fixup!
matifali4b9c2c6
fmt
matifali01707ec
add snap
matifalie034239
fixup!
matifalic021161
fix IDEs mess
matifali3ef9932
fmt
matifalid3b4b78
link change management
matifali18a498d
add terraform modules
matifali801d4fa
delete filebrowser
matifaliFile filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
add integration guides
- Loading branch information
Uh oh!
There was an error while loading.Please reload this page.
commit4098a8c75d43eee5b51dd577ba0053d67511a77b
There are no files selected for viewing
2 changes: 1 addition & 1 deletiondocs/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
176 changes: 176 additions & 0 deletionsdocs/admin/integrations/artifactory-integration.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,176 @@ | ||
# JFrog Artifactory Integration | ||
<div> | ||
<a href="https://github.com/matifali" style="text-decoration: none; color: inherit;"> | ||
<span style="vertical-align:middle;">M Atif Ali</span> | ||
<img src="https://github.com/matifali.png" width="24px" height="24px" style="vertical-align:middle; margin: 0px;"/> | ||
</a> | ||
</div> | ||
January 24, 2024 | ||
--- | ||
Use Coder and JFrog Artifactory together to secure your development environments | ||
without disturbing your developers' existing workflows. | ||
This guide will demonstrate how to use JFrog Artifactory as a package registry | ||
within a workspace. | ||
## Requirements | ||
- A JFrog Artifactory instance | ||
- 1:1 mapping of users in Coder to users in Artifactory by email address or | ||
username | ||
- Repositories configured in Artifactory for each package manager you want to | ||
use | ||
## Provisioner Authentication | ||
The most straight-forward way to authenticate your template with Artifactory is | ||
by using our official Coder [modules](https://registry.coder.com). We publish | ||
two type of modules that automate the JFrog Artifactory and Coder integration. | ||
1. [JFrog-OAuth](https://registry.coder.com/modules/jfrog-oauth) | ||
2. [JFrog-Token](https://registry.coder.com/modules/jfrog-token) | ||
### 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](https://coder.com/docs/v2/latest/admin/external-auth) | ||
feature and allows each user to authenticate with Artifactory using an OAuth | ||
flow and issues user-scoped tokens to each user. | ||
To set this up, follow these steps: | ||
1. Modify your Helm chart `values.yaml` for JFrog Artifactory to add, | ||
```yaml | ||
artifactory: | ||
enabled: true | ||
frontend: | ||
extraEnvironmentVariables: | ||
- name: JF_FRONTEND_FEATURETOGGLER_ACCESSINTEGRATION | ||
value: "true" | ||
access: | ||
accessConfig: | ||
integrations-enabled: true | ||
integration-templates: | ||
- id: "1" | ||
name: "CODER" | ||
redirect-uri: "https://CODER_URL/external-auth/jfrog/callback" | ||
scope: "applied-permissions/user" | ||
``` | ||
> Note Replace `CODER_URL` with your Coder deployment URL, e.g., | ||
> <coder.example.com> | ||
2. Create a new Application Integration by going to | ||
<https://JFROG_URL/ui/admin/configuration/integrations/new> and select the | ||
Application Type as the integration you created in step 1. | ||
 | ||
3. Add a new | ||
[external authentication](https://coder.com/docs/v2/latest/admin/external-auth) | ||
to Coder by setting these env variables, | ||
```env | ||
# JFrog Artifactory External Auth | ||
CODER_EXTERNAL_AUTH_1_ID="jfrog" | ||
CODER_EXTERNAL_AUTH_1_TYPE="jfrog" | ||
CODER_EXTERNAL_AUTH_1_CLIENT_ID="YYYYYYYYYYYYYYY" | ||
CODER_EXTERNAL_AUTH_1_CLIENT_SECRET="XXXXXXXXXXXXXXXXXXX" | ||
CODER_EXTERNAL_AUTH_1_DISPLAY_NAME="JFrog Artifactory" | ||
CODER_EXTERNAL_AUTH_1_DISPLAY_ICON="/icon/jfrog.svg" | ||
CODER_EXTERNAL_AUTH_1_AUTH_URL="https://JFROG_URL/ui/authorization" | ||
CODER_EXTERNAL_AUTH_1_SCOPES="applied-permissions/user" | ||
``` | ||
> Note Replace `JFROG_URL` with your JFrog Artifactory base URL, e.g., | ||
> <example.jfrog.io> | ||
4. Create or edit a Coder template and use the | ||
[JFrog-OAuth](https://registry.coder.com/modules/jfrog-oauth) module to | ||
configure the integration. | ||
```hcl | ||
module "jfrog" { | ||
source = "registry.coder.com/modules/jfrog-oauth/coder" | ||
version = "1.0.0" | ||
agent_id = coder_agent.example.id | ||
jfrog_url = "https://jfrog.example.com" | ||
configure_code_server = true # this depends on the code-server | ||
username_field = "username" # If you are using GitHub to login to both Coder and Artifactory, use username_field = "username" | ||
package_managers = { | ||
"npm": "npm", | ||
"go": "go", | ||
"pypi": "pypi" | ||
} | ||
} | ||
``` | ||
### JFrog-Token | ||
This module makes use of the | ||
[Artifactory terraform provider](https://registry.terraform.io/providers/jfrog/artifactory/latest/docs) | ||
and an admin-scoped token to create user-scoped tokens for each user by matching | ||
their Coder email or username with Artifactory. This can be used for both SaaS | ||
and self-hosted(on-premises) Artifactory instances. | ||
To set this up, follow these steps: | ||
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`. | ||
2. 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. | ||
```hcl | ||
variable "artifactory_access_token" { | ||
type = string | ||
sensitive = true | ||
} | ||
module "jfrog" { | ||
source = "registry.coder.com/modules/jfrog-token/coder" | ||
version = "1.0.0" | ||
agent_id = coder_agent.example.id | ||
jfrog_url = "https://example.jfrog.io" | ||
configure_code_server = true # this depends on the code-server | ||
artifactory_access_token = var.artifactory_access_token | ||
package_managers = { | ||
"npm": "npm", | ||
"go": "go", | ||
"pypi": "pypi" | ||
} | ||
} | ||
``` | ||
<blockquote class="info"> | ||
The admin-level access token is used to provision user tokens and is never exposed to | ||
developers or stored in workspaces. | ||
</blockquote> | ||
If you do not want to use the official modules, you can check example template | ||
that uses Docker as the underlying compute | ||
[here](https://github.com/coder/coder/tree/main/examples/jfrog/docker). The same | ||
concepts apply to all compute types. | ||
## Offline Deployments | ||
See the [offline deployments](../templates/modules.md#offline-installations) | ||
section for instructions on how to use coder-modules in an offline environment | ||
with Artifactory. | ||
## More reading | ||
- See the full example template | ||
[here](https://github.com/coder/coder/tree/main/examples/jfrog/docker). | ||
- To serve extensions from your own VS Code Marketplace, check out | ||
[code-marketplace](https://github.com/coder/code-marketplace#artifactory-storage). | ||
- To store templates in Artifactory, check out our | ||
[Artifactory modules](../templates/modules.md#artifactory) docs. |
163 changes: 163 additions & 0 deletionsdocs/admin/integrations/island-integration.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
# Island Browser Integration | ||
<div> | ||
<a href="https://github.com/ericpaulsen" style="text-decoration: none; color: inherit;"> | ||
<span style="vertical-align:middle;">Eric Paulsen</span> | ||
<img src="https://github.com/ericpaulsen.png" width="24px" height="24px" style="vertical-align:middle; margin: 0px;"/> | ||
</a> | ||
</div> | ||
April 24, 2024 | ||
--- | ||
[Island](https://www.island.io/) is an enterprise-grade browser, offering a | ||
Chromium-based experience similar to popular web browsers like Chrome and Edge. | ||
It includes built-in security features for corporate applications and data, | ||
aiming to bridge the gap between consumer-focused browsers and the security | ||
needs of the enterprise. | ||
Coder natively integrates with Island's feature set, which include data loss | ||
protection (DLP), application awareness, browser session recording, and single | ||
sign-on (SSO). This guide intends to document these feature categories and how | ||
they apply to your Coder deployment. | ||
## General Configuration | ||
### Create an Application Group for Coder | ||
We recommend creating an Application Group specific to Coder in the Island | ||
Management console. This Application Group object will be referenced when | ||
creating browser policies. | ||
[See the Island documentation for creating an Application Group](https://documentation.island.io/docs/create-and-configure-an-application-group-object). | ||
## Advanced Data Loss Protection | ||
Integrate Island's advanced data loss prevention (DLP) capabilities with Coder's | ||
cloud development environment (CDE), enabling you to control the “last mile” | ||
between developers’ CDE and their local devices, ensuring that sensitive IP | ||
remains in your centralized environment. | ||
### Block cut, copy, paste, printing, screen share | ||
1. [Create a Data Sandbox Profile](https://documentation.island.io/docs/create-and-configure-a-data-sandbox-profile) | ||
1. Configure the following actions to allow/block (based on your security | ||
requirements): | ||
- Screenshot and Screen Share | ||
- Printing | ||
- Save Page | ||
- Clipboard Limitations | ||
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) | ||
to apply the Data Sandbox Profile | ||
1. Define the Coder Application group as the Destination Object | ||
1. Define the Data Sandbox Profile as the Action in the Last Mile Protection | ||
section | ||
### Conditionally allow copy on Coder's CLI authentication page | ||
1. [Create a URL Object](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) | ||
with the following configuration: | ||
- **Include** | ||
- **URL type**: Wildcard | ||
- **URL address**: `coder.example.com/cli-auth` | ||
- **Casing**: Insensitive | ||
1. [Create a Data Sandbox Profile](https://documentation.island.io/docs/create-and-configure-a-data-sandbox-profile) | ||
1. Configure action to allow copy/paste | ||
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) | ||
to apply the Data Sandbox Profile | ||
1. Define the URL Object you created as the Destination Object | ||
1. Define the Data Sandbox Profile as the Action in the Last Mile Protection | ||
section | ||
### Prevent file upload/download from the browser | ||
1. Create a Protection Profiles for both upload/download | ||
- [Upload documentation](https://documentation.island.io/docs/create-and-configure-an-upload-protection-profile) | ||
- [Download documentation](https://documentation.island.io/v1/docs/en/create-and-configure-a-download-protection-profile) | ||
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) | ||
to apply the Protection Profiles | ||
1. Define the Coder Application group as the Destination Object | ||
1. Define the applicable Protection Profile as the Action in the Data Protection | ||
section | ||
### Scan files for sensitive data | ||
1. [Create a Data Loss Prevention scanner](https://documentation.island.io/docs/create-a-data-loss-prevention-scanner) | ||
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) | ||
to apply the DLP Scanner | ||
1. Define the Coder Application group as the Destination Object | ||
1. Define the DLP Scanner as the Action in the Data Protection section | ||
## Application Awareness and Boundaries | ||
Ensure that Coder is only accessed through the Island browser, guaranteeing that | ||
your browser-level DLP policies are always enforced, and developers can’t | ||
sidestep such policies simply by using another browser. | ||
### Configure browser enforcement, conditional access policies | ||
1. Create a conditional access policy for your configured identity provider. | ||
> Note: the configured IdP must be the same for both Coder and Island | ||
- [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) | ||
- [Okta](https://documentation.island.io/docs/configure-browser-enforcement-for-island-with-okta) | ||
- [Google](https://documentation.island.io/docs/configure-browser-enforcement-for-island-with-google-enterprise) | ||
## Browser Activity Logging | ||
Govern and audit in-browser terminal and IDE sessions using Island, such as | ||
screenshots, mouse clicks, and keystrokes. | ||
### Activity Logging Module | ||
1. [Create an Activity Logging Profile](https://documentation.island.io/docs/create-and-configure-an-activity-logging-profile) | ||
Supported browser events include: | ||
- Web Navigation | ||
- File Download | ||
- File Upload | ||
- Clipboard/Drag & Drop | ||
- Save As | ||
- Screenshots | ||
- Mouse Clicks | ||
- Keystrokes | ||
1. [Create a Policy Rule](https://documentation.island.io/docs/create-and-configure-a-policy-rule-general) | ||
to apply the Activity Logging Profile | ||
1. Define the Coder Application group as the Destination Object | ||
1. Define the Activity Logging Profile as the Action in the Security & | ||
Visibility section | ||
## Identity-aware logins (SSO) | ||
Integrate Island's identity management system with Coder's authentication | ||
mechanisms to enable identity-aware logins. | ||
### Configure single sign-on (SSO) seamless authentication between Coder and Island | ||
Configure the same identity provider (IdP) for both your Island and Coder | ||
deployment. Upon initial login to the Island browser, the user's session token | ||
will automatically be passed to Coder and authenticate their Coder session. |
2 changes: 1 addition & 1 deletiondocs/admin/integrations/prometheus.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Oops, something went wrong.
Uh oh!
There was an error while loading.Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.