mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-08 22:22:17 +02:00
feat: implement ensure_publication for zero_publication management
- Added the ensure_publication function to create and verify the zero_publication if it is missing, ensuring idempotency during database initialization. - Integrated ensure_publication into the create_db_and_tables function to prevent zero-cache crash loops on startup. - Introduced a self-check script to validate the ensure_publication functionality on a create_all-bootstrapped database. - Updated various components to reflect the transition from search space to workspace, including adjustments in imports and routing paths.
This commit is contained in:
parent
7562bc78ee
commit
a64c8205fe
164 changed files with 626 additions and 506 deletions
|
|
@ -1,11 +1,11 @@
|
|||
import type { APIRequestContext } from "@playwright/test";
|
||||
import { authHeaders, BACKEND_URL } from "../helpers/api/auth";
|
||||
import type { SearchSpaceFixtures } from "./search-space.fixture";
|
||||
import type { SearchSpaceFixtures } from "./workspace.fixture";
|
||||
|
||||
export type ChatThreadRow = {
|
||||
id: number;
|
||||
title: string;
|
||||
search_space_id: number;
|
||||
workspace_id: number;
|
||||
visibility: string;
|
||||
created_by_id: string | null;
|
||||
created_at: string;
|
||||
|
|
@ -29,7 +29,7 @@ export const chatThreadFixtures = {
|
|||
headers: authHeaders(apiToken),
|
||||
data: {
|
||||
title: "e2e-drive-journey",
|
||||
search_space_id: searchSpace.id,
|
||||
workspace_id: searchSpace.id,
|
||||
visibility: "PRIVATE",
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { type ConnectorRow, deleteConnector, runClickupOAuth } from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type ClickupFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { type ConnectorRow, deleteConnector, runComposioOAuth } from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type ComposioCalendarFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { type ConnectorRow, deleteConnector, runComposioOAuth } from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type ComposioDriveFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { type ConnectorRow, deleteConnector, runComposioOAuth } from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type ComposioGmailFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
deleteConnector,
|
||||
runConfluenceOAuth,
|
||||
} from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type ConfluenceFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { type ConnectorRow, deleteConnector, runJiraOAuth } from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type JiraFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { type ConnectorRow, deleteConnector, runLinearOAuth } from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type LinearFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
deleteConnector,
|
||||
runNativeGoogleCalendarOAuth,
|
||||
} from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type NativeCalendarFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
deleteConnector,
|
||||
runNativeGoogleDriveOAuth,
|
||||
} from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type NativeDriveFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
deleteConnector,
|
||||
runNativeDropboxOAuth,
|
||||
} from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type NativeDropboxFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
deleteConnector,
|
||||
runNativeGoogleGmailOAuth,
|
||||
} from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type NativeGmailFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
deleteConnector,
|
||||
runNativeOneDriveOAuth,
|
||||
} from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type NativeOneDriveFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { type ConnectorRow, deleteConnector, runNotionOAuth } from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type NotionFixtures = {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { type ConnectorRow, deleteConnector, runSlackOAuth } from "../../helpers/api/connectors";
|
||||
import { searchSpaceFixtures } from "../search-space.fixture";
|
||||
import { searchSpaceFixtures } from "../workspace.fixture";
|
||||
|
||||
export type SlackFixtures = {
|
||||
/**
|
||||
|
|
|
|||
4
surfsense_web/tests/fixtures/index.ts
vendored
4
surfsense_web/tests/fixtures/index.ts
vendored
|
|
@ -59,7 +59,7 @@ export { nativeGmailFixtures } from "./connectors/native-gmail.fixture";
|
|||
export { nativeOneDriveFixtures } from "./connectors/native-onedrive.fixture";
|
||||
export { notionFixtures } from "./connectors/notion.fixture";
|
||||
export { slackFixtures } from "./connectors/slack.fixture";
|
||||
export { searchSpaceFixtures } from "./search-space.fixture";
|
||||
export { searchSpaceFixtures } from "./workspace.fixture";
|
||||
|
||||
import { type ChatThreadFixtures, chatThreadFixtures } from "./chat-thread.fixture";
|
||||
import { clickupFixtures } from "./connectors/clickup.fixture";
|
||||
|
|
@ -76,7 +76,7 @@ import { nativeGmailFixtures } from "./connectors/native-gmail.fixture";
|
|||
import { nativeOneDriveFixtures } from "./connectors/native-onedrive.fixture";
|
||||
import { notionFixtures } from "./connectors/notion.fixture";
|
||||
import { slackFixtures } from "./connectors/slack.fixture";
|
||||
import { searchSpaceFixtures } from "./search-space.fixture";
|
||||
import { searchSpaceFixtures } from "./workspace.fixture";
|
||||
|
||||
/** Default `test` for specs that just need auth + a clean search space. */
|
||||
export const test = searchSpaceFixtures;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import {
|
|||
createSearchSpace,
|
||||
deleteSearchSpace,
|
||||
type SearchSpaceRow,
|
||||
} from "../helpers/api/search-spaces";
|
||||
} from "../helpers/api/workspaces";
|
||||
import { uniqueSearchSpaceName } from "../helpers/canary";
|
||||
|
||||
export type SearchSpaceFixtures = {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ export async function streamChatToCompletion(
|
|||
headers: authHeaders(token),
|
||||
data: {
|
||||
chat_id: args.threadId,
|
||||
search_space_id: args.searchSpaceId,
|
||||
workspace_id: args.searchSpaceId,
|
||||
user_query: args.query,
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ export async function listConnectors(
|
|||
searchSpaceId: number
|
||||
): Promise<ConnectorRow[]> {
|
||||
const response = await request.get(
|
||||
`${BACKEND_URL}/api/v1/search-source-connectors?search_space_id=${searchSpaceId}`,
|
||||
`${BACKEND_URL}/api/v1/search-source-connectors?workspace_id=${searchSpaceId}`,
|
||||
{ headers: authHeaders(token) }
|
||||
);
|
||||
if (!response.ok()) {
|
||||
|
|
@ -115,7 +115,7 @@ export async function triggerIndex(
|
|||
body: IndexBody
|
||||
): Promise<{ ok: true }> {
|
||||
const response = await request.post(
|
||||
`${BACKEND_URL}/api/v1/search-source-connectors/${connectorId}/index?search_space_id=${searchSpaceId}`,
|
||||
`${BACKEND_URL}/api/v1/search-source-connectors/${connectorId}/index?workspace_id=${searchSpaceId}`,
|
||||
{ headers: authHeaders(token), data: body }
|
||||
);
|
||||
if (!response.ok()) {
|
||||
|
|
@ -134,7 +134,7 @@ export async function triggerIndexExpectDisabled(
|
|||
body: IndexBody = {}
|
||||
): Promise<{ indexing_started: false; message?: string }> {
|
||||
const response = await request.post(
|
||||
`${BACKEND_URL}/api/v1/search-source-connectors/${connectorId}/index?search_space_id=${searchSpaceId}`,
|
||||
`${BACKEND_URL}/api/v1/search-source-connectors/${connectorId}/index?workspace_id=${searchSpaceId}`,
|
||||
{ headers: authHeaders(token), data: body }
|
||||
);
|
||||
if (!response.ok()) {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ export async function listDocuments(
|
|||
limit = 100
|
||||
): Promise<DocumentRow[]> {
|
||||
const response = await request.get(
|
||||
`${BACKEND_URL}/api/v1/documents?search_space_id=${searchSpaceId}&limit=${limit}`,
|
||||
`${BACKEND_URL}/api/v1/documents?workspace_id=${searchSpaceId}&limit=${limit}`,
|
||||
{ headers: authHeaders(token) }
|
||||
);
|
||||
if (!response.ok()) {
|
||||
|
|
@ -55,7 +55,7 @@ export async function getEditorContent(
|
|||
documentId: number
|
||||
): Promise<EditorContent> {
|
||||
const response = await request.get(
|
||||
`${BACKEND_URL}/api/v1/search-spaces/${searchSpaceId}/documents/${documentId}/editor-content`,
|
||||
`${BACKEND_URL}/api/v1/workspaces/${searchSpaceId}/documents/${documentId}/editor-content`,
|
||||
{ headers: authHeaders(token) }
|
||||
);
|
||||
if (!response.ok()) {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ export async function createSearchSpace(
|
|||
name: string,
|
||||
description = "E2E test search space"
|
||||
): Promise<SearchSpaceRow> {
|
||||
const response = await request.post(`${BACKEND_URL}/api/v1/searchspaces`, {
|
||||
const response = await request.post(`${BACKEND_URL}/api/v1/workspaces`, {
|
||||
headers: authHeaders(token),
|
||||
data: { name, description },
|
||||
});
|
||||
|
|
@ -28,7 +28,7 @@ export async function deleteSearchSpace(
|
|||
token: string,
|
||||
id: number
|
||||
): Promise<void> {
|
||||
const response = await request.delete(`${BACKEND_URL}/api/v1/searchspaces/${id}`, {
|
||||
const response = await request.delete(`${BACKEND_URL}/api/v1/workspaces/${id}`, {
|
||||
headers: authHeaders(token),
|
||||
});
|
||||
if (!response.ok() && response.status() !== 404) {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ test.describe("Smoke", () => {
|
|||
headers: authHeaders(apiToken),
|
||||
data: {
|
||||
title: "e2e-chat-stream-smoke",
|
||||
search_space_id: searchSpace.id,
|
||||
workspace_id: searchSpace.id,
|
||||
visibility: "PRIVATE",
|
||||
},
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue