mirror of
https://github.com/sourcegraph/sourcegraph.git
synced 2026-02-06 16:11:57 +00:00
fix(appliance): Make Appliance URL envvars strings (#64227)
<!-- PR description tips: https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e --> Changes `APPLIANCE_MANAGED` -> `APPLIANCE_UPDATE_TARGET`, and creates `APPLIANCE_MENU_TARGET`. Both are stringly typed env vars, that when set will create / redirect the update buttons / menu links in the site admin and nav item pages. Paired with @nelsonjr and @DaedalusG on this ## Test plan <!-- REQUIRED; info at https://docs-legacy.sourcegraph.com/dev/background-information/testing_principles --> Manually Tested ## Changelog <!-- OPTIONAL; info at https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c --> - **fix(appliance): make environment variables strings to be passed around**
This commit is contained in:
parent
aaa464e332
commit
856e41eff3
@ -35,7 +35,8 @@ export const createJsContext = ({ sourcegraphBaseUrl }: { sourcegraphBaseUrl: st
|
||||
accessTokensExpirationDaysOptions: [7, 14, 30, 60, 90],
|
||||
allowSignup: true,
|
||||
batchChangesEnabled: true,
|
||||
applianceManaged: false,
|
||||
applianceUpdateTarget: '',
|
||||
applianceMenuTarget: '',
|
||||
batchChangesDisableWebhooksWarning: false,
|
||||
batchChangesWebhookLogsEnabled: true,
|
||||
executorsEnabled: false,
|
||||
|
||||
@ -34,7 +34,7 @@ export const AdminSidebarItems: StoryFn = () => (
|
||||
batchChangesExecutionEnabled={true}
|
||||
batchChangesWebhookLogsEnabled={true}
|
||||
codeInsightsEnabled={true}
|
||||
applianceManaged={false}
|
||||
applianceUpdateTarget=""
|
||||
endUserOnboardingEnabled={false}
|
||||
/>
|
||||
<SiteAdminSidebar
|
||||
@ -45,7 +45,7 @@ export const AdminSidebarItems: StoryFn = () => (
|
||||
batchChangesExecutionEnabled={true}
|
||||
batchChangesWebhookLogsEnabled={true}
|
||||
codeInsightsEnabled={true}
|
||||
applianceManaged={false}
|
||||
applianceUpdateTarget=""
|
||||
endUserOnboardingEnabled={false}
|
||||
/>
|
||||
<SiteAdminSidebar
|
||||
@ -56,7 +56,7 @@ export const AdminSidebarItems: StoryFn = () => (
|
||||
batchChangesExecutionEnabled={false}
|
||||
batchChangesWebhookLogsEnabled={false}
|
||||
codeInsightsEnabled={true}
|
||||
applianceManaged={false}
|
||||
applianceUpdateTarget=""
|
||||
endUserOnboardingEnabled={false}
|
||||
/>
|
||||
<SiteAdminSidebar
|
||||
@ -67,7 +67,7 @@ export const AdminSidebarItems: StoryFn = () => (
|
||||
batchChangesExecutionEnabled={true}
|
||||
batchChangesWebhookLogsEnabled={true}
|
||||
codeInsightsEnabled={false}
|
||||
applianceManaged={false}
|
||||
applianceUpdateTarget=""
|
||||
endUserOnboardingEnabled={false}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
@ -27,7 +27,8 @@ export const createJsContext = ({ sourcegraphBaseUrl }: { sourcegraphBaseUrl: st
|
||||
accessTokensExpirationDaysOptions: [7, 30, 60, 90],
|
||||
allowSignup: false,
|
||||
batchChangesEnabled: true,
|
||||
applianceManaged: false,
|
||||
applianceUpdateTarget: '',
|
||||
applianceMenuTarget: '',
|
||||
batchChangesDisableWebhooksWarning: false,
|
||||
batchChangesWebhookLogsEnabled: true,
|
||||
codeInsightsEnabled: true,
|
||||
|
||||
@ -199,7 +199,8 @@ export interface SourcegraphContext extends Pick<Required<SiteConfiguration>, 'e
|
||||
/**
|
||||
* Whether this sourcegraph instance is managed by Appliance
|
||||
*/
|
||||
applianceManaged: boolean
|
||||
applianceUpdateTarget: string
|
||||
applianceMenuTarget: string
|
||||
|
||||
/**
|
||||
* Whether Cody is enabled on this instance. Check
|
||||
|
||||
@ -227,6 +227,11 @@ export const UserNavItem: FC<UserNavItemProps> = props => {
|
||||
Site admin
|
||||
</MenuLink>
|
||||
)}
|
||||
{authenticatedUser.siteAdmin && window.context.applianceMenuTarget !== '' && (
|
||||
<MenuLink as={Link} to={window.context.applianceMenuTarget}>
|
||||
Appliance
|
||||
</MenuLink>
|
||||
)}
|
||||
<MenuLink as={Link} to="/help" target="_blank" rel="noopener">
|
||||
Help <Icon aria-hidden={true} svgPath={mdiOpenInNew} />
|
||||
</MenuLink>
|
||||
|
||||
@ -299,7 +299,7 @@ export const routes: RouteObject[] = [
|
||||
sideBarGroups={props.siteAdminSideBarGroups}
|
||||
overviewComponents={props.siteAdminOverviewComponents}
|
||||
codeInsightsEnabled={window.context.codeInsightsEnabled}
|
||||
applianceManaged={window.context.applianceManaged}
|
||||
applianceUpdateTarget={window.context.applianceUpdateTarget}
|
||||
telemetryRecorder={props.platformContext.telemetryRecorder}
|
||||
/>
|
||||
)}
|
||||
|
||||
@ -59,7 +59,7 @@ export interface SiteAdminAreaRouteContext
|
||||
overviewComponents: readonly React.ComponentType<React.PropsWithChildren<{}>>[]
|
||||
|
||||
codeInsightsEnabled: boolean
|
||||
applianceManaged: boolean
|
||||
applianceUpdateTarget: string
|
||||
|
||||
endUserOnboardingEnabled: boolean
|
||||
}
|
||||
@ -78,7 +78,7 @@ interface SiteAdminAreaProps
|
||||
authenticatedUser: AuthenticatedUser
|
||||
isSourcegraphDotCom: boolean
|
||||
codeInsightsEnabled: boolean
|
||||
applianceManaged: boolean
|
||||
applianceUpdateTarget: string
|
||||
}
|
||||
|
||||
const sourcegraphOperatorSiteAdminMaintenanceBlockItems = new Set([
|
||||
@ -144,7 +144,7 @@ const AuthenticatedSiteAdminArea: React.FunctionComponent<React.PropsWithChildre
|
||||
telemetryService: props.telemetryService,
|
||||
telemetryRecorder: props.telemetryRecorder,
|
||||
codeInsightsEnabled: props.codeInsightsEnabled,
|
||||
applianceManaged: props.applianceManaged,
|
||||
applianceUpdateTarget: props.applianceUpdateTarget,
|
||||
endUserOnboardingEnabled,
|
||||
}
|
||||
|
||||
@ -164,7 +164,7 @@ const AuthenticatedSiteAdminArea: React.FunctionComponent<React.PropsWithChildre
|
||||
batchChangesExecutionEnabled={props.batchChangesExecutionEnabled}
|
||||
batchChangesWebhookLogsEnabled={props.batchChangesWebhookLogsEnabled}
|
||||
codeInsightsEnabled={props.codeInsightsEnabled}
|
||||
applianceManaged={props.applianceManaged}
|
||||
applianceUpdateTarget={props.applianceUpdateTarget}
|
||||
endUserOnboardingEnabled={endUserOnboardingEnabled}
|
||||
/>
|
||||
<div className="flex-bounded">
|
||||
|
||||
@ -15,7 +15,7 @@ export interface SiteAdminSideBarGroupContext extends BatchChangesProps {
|
||||
isSourcegraphDotCom: boolean
|
||||
codeInsightsEnabled: boolean
|
||||
endUserOnboardingEnabled: boolean
|
||||
applianceManaged: boolean
|
||||
applianceUpdateTarget: string
|
||||
}
|
||||
|
||||
export interface SiteAdminSideBarGroup extends NavGroupDescriptor<SiteAdminSideBarGroupContext> {}
|
||||
|
||||
@ -135,12 +135,12 @@ const maintenanceGroup: SiteAdminSideBarGroup = {
|
||||
{
|
||||
label: maintenanceGroupUpdatesItemLabel,
|
||||
to: '/site-admin/updates',
|
||||
condition: ({ applianceManaged }) => !applianceManaged,
|
||||
condition: ({ applianceUpdateTarget }) => applianceUpdateTarget === '',
|
||||
},
|
||||
{
|
||||
label: maintenanceGroupUpdatesItemLabel,
|
||||
to: '/appliance/updates',
|
||||
condition: ({ applianceManaged }) => applianceManaged,
|
||||
to: window.context.applianceUpdateTarget,
|
||||
condition: ({ applianceUpdateTarget }) => applianceUpdateTarget !== '',
|
||||
},
|
||||
{
|
||||
label: 'Documentation',
|
||||
|
||||
@ -232,15 +232,16 @@ type JSContext struct {
|
||||
CodeIntelAutoIndexingAllowGlobalPolicies bool `json:"codeIntelAutoIndexingAllowGlobalPolicies"`
|
||||
CodeIntelRankingDocumentReferenceCountsEnabled bool `json:"codeIntelRankingDocumentReferenceCountsEnabled"`
|
||||
|
||||
CodeInsightsEnabled bool `json:"codeInsightsEnabled"`
|
||||
ApplianceManaged bool `json:"applianceManaged"`
|
||||
CodeIntelligenceEnabled bool `json:"codeIntelligenceEnabled"`
|
||||
SearchContextsEnabled bool `json:"searchContextsEnabled"`
|
||||
NotebooksEnabled bool `json:"notebooksEnabled"`
|
||||
CodeMonitoringEnabled bool `json:"codeMonitoringEnabled"`
|
||||
SearchAggregationEnabled bool `json:"searchAggregationEnabled"`
|
||||
OwnEnabled bool `json:"ownEnabled"`
|
||||
SearchJobsEnabled bool `json:"searchJobsEnabled"`
|
||||
CodeInsightsEnabled bool `json:"codeInsightsEnabled"`
|
||||
ApplianceUpdateTarget string `json:"applianceUpdateTarget"`
|
||||
ApplianceMenuTarget string `json:"applianceMenuTarget"`
|
||||
CodeIntelligenceEnabled bool `json:"codeIntelligenceEnabled"`
|
||||
SearchContextsEnabled bool `json:"searchContextsEnabled"`
|
||||
NotebooksEnabled bool `json:"notebooksEnabled"`
|
||||
CodeMonitoringEnabled bool `json:"codeMonitoringEnabled"`
|
||||
SearchAggregationEnabled bool `json:"searchAggregationEnabled"`
|
||||
OwnEnabled bool `json:"ownEnabled"`
|
||||
SearchJobsEnabled bool `json:"searchJobsEnabled"`
|
||||
|
||||
RedirectUnsupportedBrowser bool `json:"RedirectUnsupportedBrowser"`
|
||||
|
||||
@ -437,7 +438,8 @@ func NewJSContextFromRequest(req *http.Request, db database.DB) JSContext {
|
||||
CodyRequiresVerifiedEmail: siteResolver.RequiresVerifiedEmailForCody(ctx),
|
||||
|
||||
CodeSearchEnabledOnInstance: codeSearchLicensed,
|
||||
ApplianceManaged: conf.IsApplianceManaged(),
|
||||
ApplianceUpdateTarget: conf.ApplianceUpdateTarget(),
|
||||
ApplianceMenuTarget: conf.ApplianceMenuTarget(),
|
||||
|
||||
ExecutorsEnabled: conf.ExecutorsEnabled(),
|
||||
CodeIntelAutoIndexingEnabled: conf.CodeIntelAutoIndexingEnabled(),
|
||||
|
||||
@ -6,7 +6,6 @@ import (
|
||||
"net/url"
|
||||
"os"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@ -535,11 +534,12 @@ func AuthPrimaryLoginProvidersCount() int {
|
||||
return c
|
||||
}
|
||||
|
||||
func IsApplianceManaged() bool {
|
||||
if v, _ := strconv.ParseBool(os.Getenv("APPLIANCE_MANAGED")); v {
|
||||
return v
|
||||
}
|
||||
return false
|
||||
func ApplianceUpdateTarget() string {
|
||||
return os.Getenv("APPLIANCE_UPDATE_TARGET")
|
||||
}
|
||||
|
||||
func ApplianceMenuTarget() string {
|
||||
return os.Getenv("APPLIANCE_MENU_TARGET")
|
||||
}
|
||||
|
||||
// SearchSymbolsParallelism returns 20, or the site config
|
||||
|
||||
Loading…
Reference in New Issue
Block a user