Merge pull request #275 from fosrl/dev

add migration script
This commit is contained in:
Milo Schwartz 2025-03-04 11:14:31 -05:00 committed by GitHub
commit eb73da8aa0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 68 additions and 9 deletions

View file

@ -2,7 +2,7 @@ import path from "path";
import { fileURLToPath } from "url"; import { fileURLToPath } from "url";
// This is a placeholder value replaced by the build process // This is a placeholder value replaced by the build process
export const APP_VERSION = "1.0.0-beta.15"; export const APP_VERSION = "1.0.0";
export const __FILENAME = fileURLToPath(import.meta.url); export const __FILENAME = fileURLToPath(import.meta.url);
export const __DIRNAME = path.dirname(__FILENAME); export const __DIRNAME = path.dirname(__FILENAME);

View file

@ -16,6 +16,7 @@ import m7 from "./scripts/1.0.0-beta10";
import m8 from "./scripts/1.0.0-beta12"; import m8 from "./scripts/1.0.0-beta12";
import m13 from "./scripts/1.0.0-beta13"; import m13 from "./scripts/1.0.0-beta13";
import m15 from "./scripts/1.0.0-beta15"; import m15 from "./scripts/1.0.0-beta15";
import m16 from "./scripts/1.0.0";
// THIS CANNOT IMPORT ANYTHING FROM THE SERVER // THIS CANNOT IMPORT ANYTHING FROM THE SERVER
// EXCEPT FOR THE DATABASE AND THE SCHEMA // EXCEPT FOR THE DATABASE AND THE SCHEMA
@ -31,7 +32,8 @@ const migrations = [
{ version: "1.0.0-beta.10", run: m7 }, { version: "1.0.0-beta.10", run: m7 },
{ version: "1.0.0-beta.12", run: m8 }, { version: "1.0.0-beta.12", run: m8 },
{ version: "1.0.0-beta.13", run: m13 }, { version: "1.0.0-beta.13", run: m13 },
{ version: "1.0.0-beta.15", run: m15 } { version: "1.0.0-beta.15", run: m15 },
{ version: "1.0.0", run: m16 }
// Add new migrations here as they are created // Add new migrations here as they are created
] as const; ] as const;

View file

@ -0,0 +1,57 @@
import { APP_PATH } from "@server/lib/consts";
import fs from "fs";
import yaml from "js-yaml";
import path from "path";
import { z } from "zod";
import { fromZodError } from "zod-validation-error";
const version = "1.0.0";
export default async function migration() {
console.log(`Running setup script ${version}...`);
try {
const traefikPath = path.join(
APP_PATH,
"traefik",
"traefik_config.yml"
);
const schema = z.object({
experimental: z.object({
plugins: z.object({
badger: z.object({
moduleName: z.string(),
version: z.string()
})
})
})
});
const traefikFileContents = fs.readFileSync(traefikPath, "utf8");
const traefikConfig = yaml.load(traefikFileContents) as any;
const parsedConfig = schema.safeParse(traefikConfig);
if (!parsedConfig.success) {
throw new Error(fromZodError(parsedConfig.error).toString());
}
traefikConfig.experimental.plugins.badger.version = "v1.0.0";
const updatedTraefikYaml = yaml.dump(traefikConfig);
fs.writeFileSync(traefikPath, updatedTraefikYaml, "utf8");
console.log(
"Updated the version of Badger in your Traefik configuration to 1.0.0"
);
} catch (e) {
console.log(
"We were unable to update the version of Badger in your Traefik configuration. Please update it manually."
);
console.error(e);
}
console.log(`${version} migration complete`);
}

View file

@ -408,7 +408,7 @@ export default function ResourceAuthenticationPage() {
<SwitchInput <SwitchInput
id="sso-toggle" id="sso-toggle"
label="Use Platform SSO" label="Use Platform SSO"
description="Existing users will only have to login once for all resources that have this enabled." description="Existing users will only have to log in once for all resources that have this enabled."
defaultChecked={resource.sso} defaultChecked={resource.sso}
onCheckedChange={(val) => setSsoEnabled(val)} onCheckedChange={(val) => setSsoEnabled(val)}
/> />

View file

@ -455,7 +455,7 @@ export default function ReverseProxyTargets(props: {
SSL Configuration SSL Configuration
</SettingsSectionTitle> </SettingsSectionTitle>
<SettingsSectionDescription> <SettingsSectionDescription>
Setup SSL to secure your connections with certificates Set up SSL to secure your connections with certificates
</SettingsSectionDescription> </SettingsSectionDescription>
</SettingsSectionHeader> </SettingsSectionHeader>
<SettingsSectionBody> <SettingsSectionBody>
@ -477,7 +477,7 @@ export default function ReverseProxyTargets(props: {
Target Configuration Target Configuration
</SettingsSectionTitle> </SettingsSectionTitle>
<SettingsSectionDescription> <SettingsSectionDescription>
Setup targets to route traffic to your services Set up targets to route traffic to your services
</SettingsSectionDescription> </SettingsSectionDescription>
</SettingsSectionHeader> </SettingsSectionHeader>
<SettingsSectionBody> <SettingsSectionBody>

View file

@ -41,7 +41,7 @@ export default async function Page(props: {
Looks like you've been invited! Looks like you've been invited!
</h2> </h2>
<p className="text-center"> <p className="text-center">
To accept the invite, you must login or create an To accept the invite, you must log in or create an
account. account.
</p> </p>
</div> </div>

View file

@ -182,7 +182,7 @@ export default function ResetPasswordForm({
return; return;
} }
setSuccessMessage("Password reset successfully! Back to login..."); setSuccessMessage("Password reset successfully! Back to log in...");
setTimeout(() => { setTimeout(() => {
if (redirect) { if (redirect) {

View file

@ -57,7 +57,7 @@ export default async function Page(props: {
Looks like you've been invited! Looks like you've been invited!
</h2> </h2>
<p className="text-center"> <p className="text-center">
To accept the invite, you must login or create an To accept the invite, you must log in or create an
account. account.
</p> </p>
</div> </div>

View file

@ -112,7 +112,7 @@ export default function StepperForm() {
<> <>
<Card> <Card>
<CardHeader> <CardHeader>
<CardTitle>Setup New Organization</CardTitle> <CardTitle>New Organization</CardTitle>
<CardDescription> <CardDescription>
Create your organization, site, and resources Create your organization, site, and resources
</CardDescription> </CardDescription>