mirror of https://github.com/buster-so/buster.git
commit
198b7c52c6
|
@ -169,8 +169,8 @@ jobs:
|
|||
- name: Extract version from package.json
|
||||
id: get_version
|
||||
run: |
|
||||
# Update this to 0.3.0 as requested
|
||||
VERSION="0.3.0"
|
||||
# Update this to 0.3.1 as requested
|
||||
VERSION="0.3.1"
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
echo "Extracted version: $VERSION"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@buster-app/cli",
|
||||
"version": "0.3.0",
|
||||
"version": "0.3.1",
|
||||
"description": "Buster CLI - TypeScript version",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
|
|
|
@ -10,7 +10,7 @@ import { InitCommand } from './commands/init.js';
|
|||
program
|
||||
.name('buster')
|
||||
.description('Buster CLI - AI-powered data analytics platform')
|
||||
.version('0.3.0');
|
||||
.version('0.3.1');
|
||||
|
||||
// Auth command - authentication management
|
||||
program
|
||||
|
|
|
@ -13,5 +13,6 @@ export const beforeLoad = ({
|
|||
params,
|
||||
search,
|
||||
unsafeRelative: 'path',
|
||||
replace: true,
|
||||
});
|
||||
};
|
||||
|
|
|
@ -13,5 +13,6 @@ export const beforeLoad = ({
|
|||
params,
|
||||
search,
|
||||
unsafeRelative: 'path',
|
||||
replace: true,
|
||||
});
|
||||
};
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import { redirect } from '@tanstack/react-router';
|
||||
import { createServerFn } from '@tanstack/react-start';
|
||||
import { parseCookies, setCookie } from '@tanstack/react-start/server';
|
||||
import { getSupabaseServerClient } from './server';
|
||||
|
||||
export const signOut = createServerFn({ method: 'POST' }).handler(async () => {
|
||||
|
@ -13,5 +12,6 @@ export const signOut = createServerFn({ method: 'POST' }).handler(async () => {
|
|||
|
||||
throw redirect({
|
||||
href: '/',
|
||||
replace: true,
|
||||
});
|
||||
});
|
||||
|
|
|
@ -15,11 +15,12 @@ export const Route = createFileRoute('/app')({
|
|||
context: ({ context }) => ({ ...context, getAppLayout }),
|
||||
ssr: true,
|
||||
beforeLoad: async () => {
|
||||
console.log('before load app');
|
||||
const { isExpired, accessToken = '' } = await getSupabaseSession();
|
||||
|
||||
if (isExpired || !accessToken) {
|
||||
console.error('Access token is expired or not found');
|
||||
throw redirect({ to: '/auth/login' });
|
||||
throw redirect({ to: '/auth/login', replace: true });
|
||||
}
|
||||
|
||||
return {
|
||||
|
@ -29,6 +30,7 @@ export const Route = createFileRoute('/app')({
|
|||
loader: async ({ context }) => {
|
||||
const { queryClient, accessToken } = context;
|
||||
try {
|
||||
console.log('loader app');
|
||||
const [initialLayout, user] = await Promise.all([
|
||||
getAppLayout({ id: PRIMARY_APP_LAYOUT_ID }),
|
||||
getSupabaseUser(),
|
||||
|
@ -37,9 +39,10 @@ export const Route = createFileRoute('/app')({
|
|||
prefetchListDatasources(queryClient),
|
||||
prefetchGetDatasets(queryClient),
|
||||
]);
|
||||
console.log('loader app done', user, initialLayout);
|
||||
|
||||
if (!user) {
|
||||
throw redirect({ to: '/auth/login' });
|
||||
throw redirect({ to: '/auth/login', replace: true });
|
||||
}
|
||||
|
||||
return {
|
||||
|
@ -51,7 +54,7 @@ export const Route = createFileRoute('/app')({
|
|||
};
|
||||
} catch (error) {
|
||||
console.error('Error in app route loader:', error);
|
||||
throw redirect({ to: '/auth/login' });
|
||||
throw redirect({ to: '/auth/login', replace: true });
|
||||
}
|
||||
},
|
||||
component: () => {
|
||||
|
|
|
@ -5,6 +5,7 @@ export const Route = createFileRoute('/app/_app/datasets/$datasetId/permissions/
|
|||
throw redirect({
|
||||
to: '/app/datasets/$datasetId/permissions/overview',
|
||||
params,
|
||||
replace: true,
|
||||
});
|
||||
},
|
||||
});
|
||||
|
|
|
@ -12,6 +12,7 @@ export const Route = createFileRoute('/app/_app/datasets/$datasetId')({
|
|||
throw redirect({
|
||||
to: '/app/datasets/$datasetId/overview',
|
||||
params,
|
||||
replace: true,
|
||||
});
|
||||
}
|
||||
},
|
||||
|
|
|
@ -9,7 +9,7 @@ export const Route = createFileRoute('/app/_settings/_permissions')({
|
|||
const { queryClient } = context;
|
||||
const userData = await prefetchGetMyUserInfo(queryClient);
|
||||
if (!userData || !userData.organizations || !checkIfUserIsAdmin(userData.organizations[0])) {
|
||||
throw redirect({ to: '/auth/login' });
|
||||
throw redirect({ to: '/auth/login', replace: true });
|
||||
}
|
||||
},
|
||||
});
|
||||
|
|
|
@ -7,6 +7,7 @@ export const Route = createFileRoute(
|
|||
throw redirect({
|
||||
to: '/app/settings/dataset-groups/$datasetGroupId/datasets',
|
||||
params,
|
||||
replace: true,
|
||||
});
|
||||
},
|
||||
});
|
||||
|
|
|
@ -7,7 +7,7 @@ export const Route = createFileRoute('/app/_settings/_restricted_layout/_admin_o
|
|||
const { queryClient } = context;
|
||||
const userData = await prefetchGetMyUserInfo(queryClient);
|
||||
if (!userData || !userData.organizations || !checkIfUserIsAdmin(userData.organizations[0])) {
|
||||
throw redirect({ to: '/auth/login' });
|
||||
throw redirect({ to: '/auth/login', replace: true });
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ export const Route = createFileRoute('/app/_settings/settings/')({
|
|||
beforeLoad: async () => {
|
||||
throw redirect({
|
||||
to: '/app/settings/profile',
|
||||
replace: true,
|
||||
});
|
||||
},
|
||||
});
|
||||
|
|
|
@ -2,6 +2,8 @@ import { createFileRoute, redirect } from '@tanstack/react-router';
|
|||
|
||||
export const Route = createFileRoute('/app/')({
|
||||
beforeLoad: async () => {
|
||||
throw redirect({ to: '/app/home' });
|
||||
console.log('before load redirecting to app home');
|
||||
throw redirect({ to: '/app/home', replace: true });
|
||||
},
|
||||
component: () => null,
|
||||
});
|
||||
|
|
|
@ -2,6 +2,8 @@ import { createFileRoute, redirect } from '@tanstack/react-router';
|
|||
|
||||
export const Route = createFileRoute('/')({
|
||||
beforeLoad: async () => {
|
||||
throw redirect({ to: '/app/home' });
|
||||
console.log('before load redirecting to app');
|
||||
throw redirect({ to: '/app/home', replace: true });
|
||||
},
|
||||
component: () => null,
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue