Skip to content

feat: Support config files with viper #4558

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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 43 commits into from
Oct 21, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
305f2af
wip
f0ssel Oct 13, 2022
bf152f3
idk
f0ssel Oct 14, 2022
3794097
add script
f0ssel Oct 17, 2022
d819ef6
get working with normal fields
f0ssel Oct 17, 2022
14cdd59
get formatting right
f0ssel Oct 17, 2022
a819afd
make arrays work
f0ssel Oct 17, 2022
976be19
support structs
f0ssel Oct 18, 2022
ddfd59f
rename
f0ssel Oct 18, 2022
817704c
fix
f0ssel Oct 18, 2022
451b7c4
more fix
f0ssel Oct 18, 2022
8928789
relay
f0ssel Oct 18, 2022
bc53e5e
fix env
f0ssel Oct 18, 2022
387293e
pass tests
f0ssel Oct 18, 2022
65d73b4
fix tests
f0ssel Oct 18, 2022
c098307
docs
f0ssel Oct 18, 2022
de46a07
remove script test
f0ssel Oct 18, 2022
65d7d56
fix gen
f0ssel Oct 18, 2022
3826228
fix gen
f0ssel Oct 18, 2022
c14f58e
frontend refactor
f0ssel Oct 18, 2022
e306ff1
back to reflect
f0ssel Oct 18, 2022
3cafe7a
more convert
f0ssel Oct 18, 2022
cb95772
move to reflect
f0ssel Oct 19, 2022
45dd962
clean docs
f0ssel Oct 19, 2022
687f474
fix ent
f0ssel Oct 20, 2022
b776d7d
lint
f0ssel Oct 20, 2022
eac9ad3
make gen
f0ssel Oct 20, 2022
42e70ee
try supporting flag
f0ssel Oct 20, 2022
3940948
fix tests
f0ssel Oct 21, 2022
dd2f4ff
add back test
f0ssel Oct 21, 2022
26e698d
add back test2
f0ssel Oct 21, 2022
b3c1ec8
centralize flag name
f0ssel Oct 21, 2022
63587f6
fix ts
f0ssel Oct 21, 2022
d947363
fix ts
f0ssel Oct 21, 2022
9520daf
fix merge
f0ssel Oct 21, 2022
555aaac
make fmt
f0ssel Oct 21, 2022
ef682b9
remove verbose from flag set
f0ssel Oct 21, 2022
ee1ac0b
add json flags
f0ssel Oct 21, 2022
301e4e7
remove server.yaml
f0ssel Oct 21, 2022
8e2e900
fix ts
f0ssel Oct 21, 2022
0d548ed
ensure as much parity as possible
f0ssel Oct 21, 2022
c85657b
revert tls breaking changes
f0ssel Oct 21, 2022
903db7f
make gen
f0ssel Oct 21, 2022
8fae06a
fix docs
f0ssel Oct 21, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix ts
  • Loading branch information
f0ssel committed Oct 21, 2022
commit 63587f622c76fc05a3f9d57439733bc5a459ea86
8 changes: 4 additions & 4 deletions site/src/AppRouter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ export const AppRouter: FC = () => {
element={
<AuthAndFrame>
<RequirePermission
isFeatureVisible={Boolean(permissions?.viewDeploymentFlags)}
isFeatureVisible={Boolean(permissions?.viewDeploymentConfig)}
>
<DeploySettingsLayout>
<GeneralSettingsPage />
Expand All @@ -270,7 +270,7 @@ export const AppRouter: FC = () => {
element={
<AuthAndFrame>
<RequirePermission
isFeatureVisible={Boolean(permissions?.viewDeploymentFlags)}
isFeatureVisible={Boolean(permissions?.viewDeploymentConfig)}
>
<DeploySettingsLayout>
<SecuritySettingsPage />
Expand All @@ -284,7 +284,7 @@ export const AppRouter: FC = () => {
element={
<AuthAndFrame>
<RequirePermission
isFeatureVisible={Boolean(permissions?.viewDeploymentFlags)}
isFeatureVisible={Boolean(permissions?.viewDeploymentConfig)}
>
<DeploySettingsLayout>
<NetworkSettingsPage />
Expand All @@ -298,7 +298,7 @@ export const AppRouter: FC = () => {
element={
<AuthAndFrame>
<RequirePermission
isFeatureVisible={Boolean(permissions?.viewDeploymentFlags)}
isFeatureVisible={Boolean(permissions?.viewDeploymentConfig)}
>
<DeploySettingsLayout>
<AuthSettingsPage />
Expand Down
6 changes: 3 additions & 3 deletions site/src/api/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -667,9 +667,9 @@ export const getAgentListeningPorts = async (
return response.data
}

export const getDeploymentFlags =
async (): Promise<TypesGen.DeploymentFlags> => {
const response = await axios.get(`/api/v2/flags/deployment`)
export const getDeploymentConfig =
async (): Promise<TypesGen.DeploymentConfig> => {
const response = await axios.get(`/api/v2/config/deployment`)
return response.data
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import React, {
import { useActor } from "@xstate/react"
import { XServiceContext } from "xServices/StateContext"
import { Loader } from "components/Loader/Loader"
import { DeploymentFlags } from "api/typesGenerated"
import { DeploymentConfig } from "api/typesGenerated"

type DeploySettingsContextValue = { deploymentFlags: DeploymentFlags }
type DeploySettingsContextValue = { deploymentConfig: DeploymentConfig }

const DeploySettingsContext = createContext<
DeploySettingsContextValue | undefined
Expand All @@ -33,9 +33,9 @@ export const DeploySettingsLayout: React.FC<PropsWithChildren> = ({
children,
}) => {
const xServices = useContext(XServiceContext)
const [state, send] = useActor(xServices.deploymentFlagsXService)
const [state, send] = useActor(xServices.deploymentConfigXService)
const styles = useStyles()
const { deploymentFlags } = state.context
const { deploymentConfig } = state.context

useEffect(() => {
if (state.matches("idle")) {
Expand All @@ -48,8 +48,8 @@ export const DeploySettingsLayout: React.FC<PropsWithChildren> = ({
<Stack className={styles.wrapper} direction="row" spacing={5}>
<Sidebar />
<main className={styles.content}>
{deploymentFlags ? (
<DeploySettingsContext.Provider value={{ deploymentFlags }}>
{deploymentConfig ? (
<DeploySettingsContext.Provider value={{ deploymentConfig: deploymentConfig }}>
{children}
</DeploySettingsContext.Provider>
) : (
Expand Down
4 changes: 2 additions & 2 deletions site/src/components/DeploySettingsLayout/OptionsTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ import TableCell from "@material-ui/core/TableCell"
import TableContainer from "@material-ui/core/TableContainer"
import TableHead from "@material-ui/core/TableHead"
import TableRow from "@material-ui/core/TableRow"
import { DeploymentFlags } from "api/typesGenerated"
import { DeploymentConfig } from "api/typesGenerated"
import {
OptionDescription,
OptionName,
OptionValue,
} from "components/DeploySettingsLayout/Option"
import React from "react"

const OptionsTable: React.FC<{ options: Partial<DeploymentFlags> }> = ({
const OptionsTable: React.FC<{ options: Partial<DeploymentConfig> }> = ({
options,
}) => {
const styles = useStyles()
Expand Down
2 changes: 1 addition & 1 deletion site/src/components/Navbar/Navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export const Navbar: React.FC = () => {
featureVisibility[FeatureNames.AuditLog] &&
Boolean(permissions?.viewAuditLog)
const canViewDeployment =
experimental && Boolean(permissions?.viewDeploymentFlags)
experimental && Boolean(permissions?.viewDeploymentConfig)
const onSignOut = () => authSend("SIGN_OUT")

return (
Expand Down
30 changes: 15 additions & 15 deletions site/src/pages/DeploySettingsPage/AuthSettingsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { Helmet } from "react-helmet-async"
import { pageTitle } from "util/page"

const AuthSettingsPage: React.FC = () => {
const { deploymentFlags } = useDeploySettings()
const { deploymentConfig: deploymentConfig } = useDeploySettings()

return (
<>
Expand All @@ -32,7 +32,7 @@ const AuthSettingsPage: React.FC = () => {
/>

<Badges>
{deploymentFlags.oidc_client_id.value ? (
{deploymentConfig.oidc_client_id.value ? (
<EnabledBadge />
) : (
<DisabledBadge />
Expand All @@ -41,12 +41,12 @@ const AuthSettingsPage: React.FC = () => {

<OptionsTable
options={{
oidc_client_id: deploymentFlags.oidc_client_id,
oidc_client_secret: deploymentFlags.oidc_client_secret,
oidc_allow_signups: deploymentFlags.oidc_allow_signups,
oidc_email_domain: deploymentFlags.oidc_email_domain,
oidc_issuer_url: deploymentFlags.oidc_issuer_url,
oidc_scopes: deploymentFlags.oidc_scopes,
oidc_client_id: deploymentConfig.oidc_client_id,
oidc_client_secret: deploymentConfig.oidc_client_secret,
oidc_allow_signups: deploymentConfig.oidc_allow_signups,
oidc_email_domain: deploymentConfig.oidc_email_domain,
oidc_issuer_url: deploymentConfig.oidc_issuer_url,
oidc_scopes: deploymentConfig.oidc_scopes,
}}
/>
</div>
Expand All @@ -60,7 +60,7 @@ const AuthSettingsPage: React.FC = () => {
/>

<Badges>
{deploymentFlags.oauth2_github_client_id.value ? (
{deploymentConfig.oauth2_github_client_id.value ? (
<EnabledBadge />
) : (
<DisabledBadge />
Expand All @@ -69,17 +69,17 @@ const AuthSettingsPage: React.FC = () => {

<OptionsTable
options={{
oauth2_github_client_id: deploymentFlags.oauth2_github_client_id,
oauth2_github_client_id: deploymentConfig.oauth2_github_client_id,
oauth2_github_client_secret:
deploymentFlags.oauth2_github_client_secret,
deploymentConfig.oauth2_github_client_secret,
oauth2_github_allow_signups:
deploymentFlags.oauth2_github_allow_signups,
deploymentConfig.oauth2_github_allow_signups,
oauth2_github_allowed_organizations:
deploymentFlags.oauth2_github_allowed_organizations,
deploymentConfig.oauth2_github_allowed_organizations,
oauth2_github_allowed_teams:
deploymentFlags.oauth2_github_allowed_teams,
deploymentConfig.oauth2_github_allowed_teams,
oauth2_github_enterprise_base_url:
deploymentFlags.oauth2_github_enterprise_base_url,
deploymentConfig.oauth2_github_enterprise_base_url,
}}
/>
</div>
Expand Down
8 changes: 4 additions & 4 deletions site/src/pages/DeploySettingsPage/GeneralSettingsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { Helmet } from "react-helmet-async"
import { pageTitle } from "util/page"

const GeneralSettingsPage: React.FC = () => {
const { deploymentFlags } = useDeploySettings()
const { deploymentConfig: deploymentConfig } = useDeploySettings()

return (
<>
Expand All @@ -22,9 +22,9 @@ const GeneralSettingsPage: React.FC = () => {

<OptionsTable
options={{
access_url: deploymentFlags.access_url,
address: deploymentFlags.address,
wildcard_access_url: deploymentFlags.wildcard_access_url,
access_url: deploymentConfig.access_url,
address: deploymentConfig.address,
wildcard_access_url: deploymentConfig.wildcard_access_url,
}}
/>
</>
Expand Down
10 changes: 5 additions & 5 deletions site/src/pages/DeploySettingsPage/NetworkSettingsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { Helmet } from "react-helmet-async"
import { pageTitle } from "util/page"

const NetworkSettingsPage: React.FC = () => {
const { deploymentFlags } = useDeploySettings()
const { deploymentConfig: deploymentConfig } = useDeploySettings()

return (
<>
Expand All @@ -22,10 +22,10 @@ const NetworkSettingsPage: React.FC = () => {

<OptionsTable
options={{
derp_server_enabled: deploymentFlags.derp_server_enabled,
derp_server_region_name: deploymentFlags.derp_server_region_name,
derp_server_stun_address: deploymentFlags.derp_server_stun_address,
derp_config_url: deploymentFlags.derp_config_url,
derp_server_enabled: deploymentConfig.derp_server_enabled,
derp_server_region_name: deploymentConfig.derp_server_region_name,
derp_server_stun_address: deploymentConfig.derp_server_stun_address,
derp_config_url: deploymentConfig.derp_config_url,
}}
/>
</>
Expand Down
14 changes: 7 additions & 7 deletions site/src/pages/DeploySettingsPage/SecuritySettingsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { pageTitle } from "util/page"
import { XServiceContext } from "xServices/StateContext"

const SecuritySettingsPage: React.FC = () => {
const { deploymentFlags } = useDeploySettings()
const { deploymentConfig: deploymentConfig } = useDeploySettings()
const xServices = useContext(XServiceContext)
const [entitlementsState] = useActor(xServices.entitlementsXService)

Expand All @@ -34,8 +34,8 @@ const SecuritySettingsPage: React.FC = () => {

<OptionsTable
options={{
ssh_keygen_algorithm: deploymentFlags.ssh_keygen_algorithm,
secure_auth_cookie: deploymentFlags.secure_auth_cookie,
ssh_keygen_algorithm: deploymentConfig.ssh_keygen_algorithm,
secure_auth_cookie: deploymentConfig.secure_auth_cookie,
}}
/>
</div>
Expand Down Expand Up @@ -89,10 +89,10 @@ const SecuritySettingsPage: React.FC = () => {

<OptionsTable
options={{
tls_enable: deploymentFlags.tls_enable,
tls_cert_files: deploymentFlags.tls_cert_files,
tls_key_files: deploymentFlags.tls_key_files,
tls_min_version: deploymentFlags.tls_min_version,
tls_enable: deploymentConfig.tls_enable,
tls_cert_files: deploymentConfig.tls_cert_files,
tls_key_files: deploymentConfig.tls_key_files,
tls_min_version: deploymentConfig.tls_min_version,
}}
/>
</div>
Expand Down
6 changes: 3 additions & 3 deletions site/src/xServices/StateContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { createContext, FC, ReactNode } from "react"
import { ActorRefFrom } from "xstate"
import { authMachine } from "./auth/authXService"
import { buildInfoMachine } from "./buildInfo/buildInfoXService"
import { deploymentFlagsMachine } from "./deploymentFlags/deploymentFlagsMachine"
import { deploymentConfigMachine } from "./deploymentConfig/deploymentConfigMachine"
import { entitlementsMachine } from "./entitlements/entitlementsXService"
import { siteRolesMachine } from "./roles/siteRolesXService"

Expand All @@ -13,7 +13,7 @@ interface XServiceContextType {
entitlementsXService: ActorRefFrom<typeof entitlementsMachine>
siteRolesXService: ActorRefFrom<typeof siteRolesMachine>
// Since the info here is used by multiple deployment settings page and we don't want to refetch them every time
deploymentFlagsXService: ActorRefFrom<typeof deploymentFlagsMachine>
deploymentConfigXService: ActorRefFrom<typeof deploymentConfigMachine>
}

/**
Expand All @@ -34,7 +34,7 @@ export const XServiceProvider: FC<{ children: ReactNode }> = ({ children }) => {
buildInfoXService: useInterpret(buildInfoMachine),
entitlementsXService: useInterpret(entitlementsMachine),
siteRolesXService: useInterpret(siteRolesMachine),
deploymentFlagsXService: useInterpret(deploymentFlagsMachine),
deploymentConfigXService: useInterpret(deploymentConfigMachine),
}}
>
{children}
Expand Down
4 changes: 2 additions & 2 deletions site/src/xServices/auth/authXService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export const checks = {
createTemplates: "createTemplates",
deleteTemplates: "deleteTemplates",
viewAuditLog: "viewAuditLog",
viewDeploymentFlags: "viewDeploymentFlags",
viewDeploymentConfig: "viewDeploymentConfig",
createGroup: "createGroup",
} as const

Expand Down Expand Up @@ -57,7 +57,7 @@ export const permissionsToCheck = {
},
action: "read",
},
[checks.viewDeploymentFlags]: {
[checks.viewDeploymentConfig]: {
object: {
resource_type: "deployment_flags",
},
Expand Down
62 changes: 0 additions & 62 deletions site/src/xServices/deploymentFlags/deploymentFlagsMachine.ts

This file was deleted.