mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
docs: restructure docs (#14421)
Closes #13434 Supersedes #14182 --------- Co-authored-by: Ethan <39577870+ethanndickson@users.noreply.github.com> Co-authored-by: Ethan Dickson <ethan@coder.com> Co-authored-by: Ben Potter <ben@coder.com> Co-authored-by: Stephen Kirby <58410745+stirby@users.noreply.github.com> Co-authored-by: Stephen Kirby <me@skirby.dev> Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com> Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
This commit is contained in:
co-authored by
Ethan
Ethan Dickson
Ben Potter
Stephen Kirby
Stephen Kirby
EdwardAngert
Edward Angert
parent
288df75686
commit
419eba5fb6
@@ -84,7 +84,9 @@ export const DashboardLayout: FC = () => {
|
||||
<p>
|
||||
Coder {updateCheck.data?.version} is now available. View the{" "}
|
||||
<Link href={updateCheck.data?.url}>release notes</Link> and{" "}
|
||||
<Link href={docs("/admin/upgrade")}>upgrade instructions</Link>{" "}
|
||||
<Link href={docs("/install/upgrade")}>
|
||||
upgrade instructions
|
||||
</Link>{" "}
|
||||
for more information.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -235,7 +235,7 @@ export const PortForwardPopoverView: FC<PortForwardPopoverViewProps> = ({
|
||||
>
|
||||
<HelpTooltipTitle>Listening Ports</HelpTooltipTitle>
|
||||
<HelpTooltipLink
|
||||
href={docs("/networking/port-forwarding#dashboard")}
|
||||
href={docs("admin/networking/port-forwarding#dashboard")}
|
||||
>
|
||||
Learn more
|
||||
</HelpTooltipLink>
|
||||
|
||||
@@ -75,13 +75,15 @@ export const SSHButton: FC<SSHButtonProps> = ({
|
||||
<HelpTooltipLink href={docs("/install")}>
|
||||
Install Coder CLI
|
||||
</HelpTooltipLink>
|
||||
<HelpTooltipLink href={docs("/ides#vs-code-remote")}>
|
||||
<HelpTooltipLink href={docs("/user-guides/workspace-access/vscode")}>
|
||||
Connect via VS Code Remote SSH
|
||||
</HelpTooltipLink>
|
||||
<HelpTooltipLink href={docs("/ides#jetbrains-gateway")}>
|
||||
<HelpTooltipLink
|
||||
href={docs("/user-guides/workspace-access/jetbrains")}
|
||||
>
|
||||
Connect via JetBrains Gateway
|
||||
</HelpTooltipLink>
|
||||
<HelpTooltipLink href={docs("/ides#ssh-configuration")}>
|
||||
<HelpTooltipLink href={docs("/user-guides/workspace-access#ssh")}>
|
||||
SSH configuration
|
||||
</HelpTooltipLink>
|
||||
</HelpTooltipLinksGroup>
|
||||
|
||||
@@ -51,7 +51,7 @@ export const AuditFilter: FC<AuditFilterProps> = ({ filter, error, menus }) => {
|
||||
|
||||
return (
|
||||
<Filter
|
||||
learnMoreLink={docs("/admin/audit-logs#filtering-logs")}
|
||||
learnMoreLink={docs("/admin/security/audit-logs#filtering-logs")}
|
||||
presets={PRESET_FILTERS}
|
||||
isLoading={menus.user.isInitializing}
|
||||
filter={filter}
|
||||
|
||||
@@ -25,7 +25,7 @@ export const AuditHelpTooltip: FC = () => {
|
||||
<HelpTooltipTitle>{Language.title}</HelpTooltipTitle>
|
||||
<HelpTooltipText>{Language.body}</HelpTooltipText>
|
||||
<HelpTooltipLinksGroup>
|
||||
<HelpTooltipLink href={docs("/admin/audit-logs")}>
|
||||
<HelpTooltipLink href={docs("/admin/security/audit-logs")}>
|
||||
{Language.docs}
|
||||
</HelpTooltipLink>
|
||||
</HelpTooltipLinksGroup>
|
||||
|
||||
@@ -139,7 +139,7 @@ export const AuditPageView: FC<AuditPageViewProps> = ({
|
||||
<Paywall
|
||||
message="Audit logs"
|
||||
description="Audit logs allow you to monitor user operations on your deployment. You need an Premium license to use this feature."
|
||||
documentationLink={docs("/admin/audit-logs")}
|
||||
documentationLink={docs("/admin/security/audit-logs")}
|
||||
/>
|
||||
</Cond>
|
||||
</ChooseOne>
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ export const GeneralSettingsPageView: FC<GeneralSettingsPageViewProps> = ({
|
||||
<SettingsHeader
|
||||
title="General"
|
||||
description="Information about your Coder deployment."
|
||||
docsHref={docs("/admin/configure")}
|
||||
docsHref={docs("/admin/setup")}
|
||||
/>
|
||||
<Stack spacing={4}>
|
||||
{Boolean(deploymentDAUsError) && (
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ export const NetworkSettingsPageView: FC<NetworkSettingsPageViewProps> = ({
|
||||
<SettingsHeader
|
||||
title="Network"
|
||||
description="Configure your deployment connectivity."
|
||||
docsHref={docs("/networking")}
|
||||
docsHref={docs("/admin/networking")}
|
||||
/>
|
||||
<OptionsTable
|
||||
options={options.filter((o) =>
|
||||
@@ -36,7 +36,7 @@ export const NetworkSettingsPageView: FC<NetworkSettingsPageViewProps> = ({
|
||||
title="Port Forwarding"
|
||||
secondary
|
||||
description="Port forwarding lets developers securely access processes on their Coder workspace from a local machine."
|
||||
docsHref={docs("/networking/port-forwarding")}
|
||||
docsHref={docs("/admin/networking/port-forwarding")}
|
||||
/>
|
||||
|
||||
<Badges>
|
||||
|
||||
@@ -72,7 +72,7 @@ export const NotificationEvents: FC<NotificationEventsProps> = ({
|
||||
component="a"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
href={docs("/admin/notifications#webhook")}
|
||||
href={docs("/admin/monitoring/notifications#webhook")}
|
||||
>
|
||||
Read the docs
|
||||
</Button>
|
||||
@@ -92,7 +92,7 @@ export const NotificationEvents: FC<NotificationEventsProps> = ({
|
||||
component="a"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
href={docs("/admin/notifications#smtp-email")}
|
||||
href={docs("/admin/monitoring/notifications#smtp-email")}
|
||||
>
|
||||
Read the docs
|
||||
</Button>
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ export const ObservabilitySettingsPageView: FC<
|
||||
title="Audit Logging"
|
||||
secondary
|
||||
description="Allow auditors to monitor user operations in your deployment."
|
||||
docsHref={docs("/admin/audit-logs")}
|
||||
docsHref={docs("/admin/security/audit-logs")}
|
||||
/>
|
||||
|
||||
<Badges>
|
||||
|
||||
+3
-1
@@ -51,7 +51,9 @@ export const SecuritySettingsPageView: FC<SecuritySettingsPageViewProps> = ({
|
||||
title="Browser Only Connections"
|
||||
secondary
|
||||
description="Block all workspace access via SSH, port forward, and other non-browser connections."
|
||||
docsHref={docs("/networking#browser-only-connections-enterprise")}
|
||||
docsHref={docs(
|
||||
"/admin/networking#browser-only-connections-enterprise-premium",
|
||||
)}
|
||||
/>
|
||||
|
||||
<Badges>
|
||||
|
||||
+2
-2
@@ -33,7 +33,7 @@ export const UserAuthSettingsPageView = ({
|
||||
title="Login with OpenID Connect"
|
||||
secondary
|
||||
description="Set up authentication to login with OpenID Connect."
|
||||
docsHref={docs("/admin/auth#openid-connect-with-google")}
|
||||
docsHref={docs("/admin/users/oidc-auth#openid-connect")}
|
||||
/>
|
||||
|
||||
<Badges>{oidcEnabled ? <EnabledBadge /> : <DisabledBadge />}</Badges>
|
||||
@@ -52,7 +52,7 @@ export const UserAuthSettingsPageView = ({
|
||||
title="Login with GitHub"
|
||||
secondary
|
||||
description="Set up authentication to login with GitHub."
|
||||
docsHref={docs("/admin/auth#github")}
|
||||
docsHref={docs("/admin/users/github-auth")}
|
||||
/>
|
||||
|
||||
<Badges>
|
||||
|
||||
@@ -48,7 +48,7 @@ export const GroupsPageView: FC<GroupsPageViewProps> = ({
|
||||
<Paywall
|
||||
message="Groups"
|
||||
description="Organize users into groups with restricted access to templates. You need an Premium license to use this feature."
|
||||
documentationLink={docs("/admin/groups")}
|
||||
documentationLink={docs("/admin/users/groups-roles")}
|
||||
/>
|
||||
</Cond>
|
||||
<Cond>
|
||||
|
||||
@@ -255,7 +255,7 @@ export const HealthMessageDocsLink: FC<HealthMessageDocsLinkProps> = ({
|
||||
}) => {
|
||||
return (
|
||||
<Link
|
||||
href={docs(`/admin/healthcheck#${code.toLocaleLowerCase()}`)}
|
||||
href={docs(`/admin/monitoring/health-check#${code.toLocaleLowerCase()}`)}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
||||
@@ -92,7 +92,7 @@ export const CreateOrganizationPageView: FC<
|
||||
<PopoverPaywall
|
||||
message="Organizations"
|
||||
description="Create multiple organizations within a single Coder deployment, allowing several platform teams to operate with isolated users, templates, and distinct underlying infrastructure."
|
||||
documentationLink={docs("/admin/organizations")}
|
||||
documentationLink={docs("/admin/users/organizations")}
|
||||
/>
|
||||
</PopoverContent>
|
||||
</Popover>
|
||||
@@ -104,7 +104,7 @@ export const CreateOrganizationPageView: FC<
|
||||
<Paywall
|
||||
message="Organizations"
|
||||
description="Create multiple organizations within a single Coder deployment, allowing several platform teams to operate with isolated users, templates, and distinct underlying infrastructure."
|
||||
documentationLink={docs("/admin/organizations")}
|
||||
documentationLink={docs("/admin/users/organizations")}
|
||||
/>
|
||||
</Cond>
|
||||
<Cond>
|
||||
|
||||
@@ -52,7 +52,7 @@ export const CustomRolesPageView: FC<CustomRolesPageViewProps> = ({
|
||||
<Paywall
|
||||
message="Custom Roles"
|
||||
description="Create custom roles to grant users a tailored set of granular permissions."
|
||||
documentationLink={docs("/admin/groups")}
|
||||
documentationLink={docs("/admin/users/groups-roles")}
|
||||
/>
|
||||
)}
|
||||
<Stack
|
||||
|
||||
@@ -48,7 +48,7 @@ export const GroupsPageView: FC<GroupsPageViewProps> = ({
|
||||
<Paywall
|
||||
message="Groups"
|
||||
description="Organize users into groups with restricted access to templates. You need a Premium license to use this feature."
|
||||
documentationLink={docs("/admin/groups")}
|
||||
documentationLink={docs("/admin/users/groups-roles")}
|
||||
/>
|
||||
</Cond>
|
||||
<Cond>
|
||||
|
||||
@@ -21,9 +21,7 @@ export const IdpSyncHelpTooltip: FC = () => {
|
||||
Coder. Use the Coder CLI to configure these mappings.
|
||||
</HelpTooltipText>
|
||||
<HelpTooltipLinksGroup>
|
||||
<HelpTooltipLink
|
||||
href={docs("/admin/auth#group-sync-enterprise-premium")}
|
||||
>
|
||||
<HelpTooltipLink href={docs("/admin/users/idp-sync")}>
|
||||
Configure IdP Sync
|
||||
</HelpTooltipLink>
|
||||
</HelpTooltipLinksGroup>
|
||||
|
||||
@@ -74,7 +74,7 @@ export const IdpSyncPage: FC = () => {
|
||||
<Button
|
||||
startIcon={<LaunchOutlined />}
|
||||
component="a"
|
||||
href={docs("/admin/auth#group-sync-enterprise-premium")}
|
||||
href={docs("/admin/users/idp-sync")}
|
||||
target="_blank"
|
||||
>
|
||||
Setup IdP Sync
|
||||
@@ -85,9 +85,7 @@ export const IdpSyncPage: FC = () => {
|
||||
<Paywall
|
||||
message="IdP Sync"
|
||||
description="Configure group and role mappings to manage permissions outside of Coder. You need an Premium license to use this feature."
|
||||
documentationLink={docs(
|
||||
"/admin/auth#group-sync-enterprise-premium",
|
||||
)}
|
||||
documentationLink={docs("/admin/users/idp-sync")}
|
||||
/>
|
||||
</Cond>
|
||||
<Cond>
|
||||
|
||||
@@ -312,9 +312,7 @@ const IdpMappingTable: FC<IdpMappingTableProps> = ({
|
||||
<Button
|
||||
startIcon={<LaunchOutlined />}
|
||||
component="a"
|
||||
href={docs(
|
||||
`/admin/auth#${type.toLowerCase()}-sync-enterprise-premium`,
|
||||
)}
|
||||
href={docs("/admin/users/idp-sync")}
|
||||
target="_blank"
|
||||
>
|
||||
How to setup IdP {type} sync
|
||||
@@ -403,7 +401,7 @@ const LegacyGroupSyncHeader: FC = () => {
|
||||
configure IdP sync via the CLI, which enables sync to be
|
||||
configured for any organization, and for those settings to be
|
||||
persisted without manually setting environment variables.{" "}
|
||||
<Link href={docs("/admin/auth#group-sync-enterprise-premium")}>
|
||||
<Link href={docs("/admin/users/idp-sync")}>
|
||||
Learn more…
|
||||
</Link>
|
||||
</HelpTooltipText>
|
||||
|
||||
@@ -24,7 +24,7 @@ export const Language = {
|
||||
text:
|
||||
"Coder role-based access control (RBAC) provides fine-grained access management. " +
|
||||
"View our docs on how to use the available roles.",
|
||||
links: [{ text: "User Roles", href: docs("/admin/users#roles") }],
|
||||
links: [{ text: "User Roles", href: docs("/admin/users/groups-roles") }],
|
||||
},
|
||||
|
||||
groups: {
|
||||
@@ -32,7 +32,7 @@ export const Language = {
|
||||
text:
|
||||
"Groups can be used with template RBAC to give groups of users access " +
|
||||
"to specific templates. View our docs on how to use groups.",
|
||||
links: [{ text: "User Groups", href: docs("/admin/groups") }],
|
||||
links: [{ text: "User Groups", href: docs("/admin/users/groups-roles") }],
|
||||
},
|
||||
} as const satisfies Record<ColumnHeader, TooltipData>;
|
||||
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ export const TemplatePermissionsPage: FC = () => {
|
||||
<Paywall
|
||||
message="Template permissions"
|
||||
description="Control access of templates for users and groups to templates. You need an Premium license to use this feature."
|
||||
documentationLink={docs("/admin/rbac")}
|
||||
documentationLink={docs("/admin/templates/template-permissions")}
|
||||
/>
|
||||
) : (
|
||||
<TemplatePermissionsPageView
|
||||
|
||||
@@ -133,7 +133,7 @@ export const PublishTemplateVersionDialog: FC<
|
||||
<HelpTooltipLinksGroup>
|
||||
<HelpTooltipLink
|
||||
href={docs(
|
||||
"/templates/general-settings#require-automatic-updates-enterprise",
|
||||
"/admin/templates/managing-templates#template-update-policies-enterprise-premium",
|
||||
)}
|
||||
>
|
||||
{Language.activeVersionHelpBody}
|
||||
|
||||
@@ -55,7 +55,7 @@ export const EmptyTemplates: FC<EmptyTemplatesProps> = ({
|
||||
Templates are written in Terraform and describe the infrastructure
|
||||
for workspaces. You can start using a starter template below or{" "}
|
||||
<Link
|
||||
href={docs("/templates/tutorial")}
|
||||
href={docs("/admin/templates/creating-templates")}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
||||
@@ -75,7 +75,7 @@ const TemplateHelpTooltip: FC = () => {
|
||||
<HelpTooltipTitle>{Language.templateTooltipTitle}</HelpTooltipTitle>
|
||||
<HelpTooltipText>{Language.templateTooltipText}</HelpTooltipText>
|
||||
<HelpTooltipLinksGroup>
|
||||
<HelpTooltipLink href={docs("/templates")}>
|
||||
<HelpTooltipLink href={docs("/admin/templates")}>
|
||||
{Language.templateTooltipLink}
|
||||
</HelpTooltipLink>
|
||||
</HelpTooltipLinksGroup>
|
||||
|
||||
@@ -81,7 +81,7 @@ export const ErrorScriptAlert: FC = () => {
|
||||
, we recommend reloading this session and{" "}
|
||||
<Link
|
||||
title=" debugging the startup script"
|
||||
href={docs("/templates#debugging-the-startup-script")}
|
||||
href={docs("/admin/templates/troubleshooting#startup-script-issues")}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
@@ -90,7 +90,9 @@ export const ErrorScriptAlert: FC = () => {
|
||||
because{" "}
|
||||
<Link
|
||||
title="your workspace may be incomplete."
|
||||
href={docs("/templates#your-workspace-may-be-incomplete")}
|
||||
href={docs(
|
||||
"/admin/templates/troubleshooting#your-workspace-may-be-incomplete",
|
||||
)}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
@@ -111,7 +113,9 @@ export const LoadingScriptsAlert: FC = () => {
|
||||
but{" "}
|
||||
<Link
|
||||
title="your workspace may be incomplete."
|
||||
href={docs("/templates#your-workspace-may-be-incomplete")}
|
||||
href={docs(
|
||||
"/admin/templates/troubleshooting#your-workspace-may-be-incomplete",
|
||||
)}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
@@ -133,7 +137,9 @@ export const LoadedScriptsAlert: FC = () => {
|
||||
this{" "}
|
||||
<Link
|
||||
title="session was started before the startup scripts finished"
|
||||
href={docs("/templates#your-workspace-may-be-incomplete")}
|
||||
href={docs(
|
||||
"/admin/templates/troubleshooting#your-workspace-may-be-incomplete",
|
||||
)}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
||||
@@ -111,7 +111,11 @@ const SSOEmptyState: FC = () => {
|
||||
message="No SSO Providers"
|
||||
description="No SSO providers are configured with this Coder deployment."
|
||||
cta={
|
||||
<Link href={docs("/admin/auth")} target="_blank" rel="noreferrer">
|
||||
<Link
|
||||
href={docs("/admin/users/oidc-auth")}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
Learn how to add a provider
|
||||
</Link>
|
||||
}
|
||||
|
||||
@@ -143,7 +143,9 @@ const BuildParametersPopoverContent: FC<BuildParametersPopoverContentProps> = ({
|
||||
</HelpTooltipText>
|
||||
<HelpTooltipLinksGroup>
|
||||
<HelpTooltipLink
|
||||
href={docs("/templates/parameters#ephemeral-parameters")}
|
||||
href={docs(
|
||||
"/admin/templates/extending-templates/parameters#ephemeral-parameters",
|
||||
)}
|
||||
>
|
||||
Read the docs
|
||||
</HelpTooltipLink>
|
||||
|
||||
@@ -128,7 +128,9 @@ export const WorkspaceDeleteDialog: FC<WorkspaceDeleteDialogProps> = ({
|
||||
delete a failed workspace. Resources such as volumes and
|
||||
virtual machines will not be destroyed.
|
||||
<Link
|
||||
href={docs("/workspaces#workspace-resources")}
|
||||
href={docs(
|
||||
"/user-guides/workspace-management#workspace-resources",
|
||||
)}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
||||
+1
-1
@@ -142,7 +142,7 @@ export const WorkspaceParametersPageView: FC<
|
||||
cta={
|
||||
<Button
|
||||
component="a"
|
||||
href={docs("/templates/parameters")}
|
||||
href={docs("/admin/templates/extending-templates/parameters")}
|
||||
startIcon={<OpenInNewOutlined />}
|
||||
variant="contained"
|
||||
target="_blank"
|
||||
|
||||
@@ -27,10 +27,10 @@ export const WorkspaceHelpTooltip: FC = () => {
|
||||
<HelpTooltipTitle>{Language.workspaceTooltipTitle}</HelpTooltipTitle>
|
||||
<HelpTooltipText>{Language.workspaceTooltipText}</HelpTooltipText>
|
||||
<HelpTooltipLinksGroup>
|
||||
<HelpTooltipLink href={docs("/workspaces")}>
|
||||
<HelpTooltipLink href={docs("/user-guides")}>
|
||||
{Language.workspaceTooltipLink1}
|
||||
</HelpTooltipLink>
|
||||
<HelpTooltipLink href={docs("/ides")}>
|
||||
<HelpTooltipLink href={docs("/user-guides/workspace-access")}>
|
||||
{Language.workspaceTooltipLink2}
|
||||
</HelpTooltipLink>
|
||||
</HelpTooltipLinksGroup>
|
||||
|
||||
@@ -90,7 +90,9 @@ export const WorkspacesFilter: FC<WorkspaceFilterProps> = ({
|
||||
isLoading={menus.status.isInitializing}
|
||||
filter={filter}
|
||||
error={error}
|
||||
learnMoreLink={docs("/workspaces#workspace-filtering")}
|
||||
learnMoreLink={docs(
|
||||
"/user-guides/workspace-management#workspace-filtering",
|
||||
)}
|
||||
options={
|
||||
<>
|
||||
{menus.user && <UserMenu width={width} menu={menus.user} />}
|
||||
|
||||
Reference in New Issue
Block a user