feat: Migrate integer primary keys to nanoids (#6345)

* first commit for postgres migration

* (not working)

* sqlite migration

* quicksave

* fix tests

* fix pg test

* fix postgres

* fix variables import

* fix execution saving

* add user settings fix

* change migration to single lines

* patch preferences endpoint

* cleanup

* improve variable import

* cleanup unusued code

* Update packages/cli/src/PublicApi/v1/handlers/workflows/workflows.handler.ts

Co-authored-by: Omar Ajoue <krynble@gmail.com>

* address review notes

* fix var update/import

* refactor: Separate execution data to its own table (#6323)

* wip: Temporary migration process

* refactor: Create boilerplate repository methods for executions

* fix: Lint issues

* refactor: Added search endpoint to repository

* refactor: Make the execution list work again

* wip: Updating how we create and update executions everywhere

* fix: Lint issues and remove most of the direct access to execution model

* refactor: Remove includeWorkflowData flag and fix more tests

* fix: Lint issues

* fix: Fixed ordering of executions for FE, removed transaction when saving execution and removed unnecessary update

* refactor: Add comment about missing feature

* refactor: Refactor counting executions

* refactor: Add migration for other dbms and fix issues found

* refactor: Fix lint issues

* refactor: Remove unnecessary comment and auto inject repo to internal hooks

* refactor: remove type assertion

* fix: Fix broken tests

* fix: Remove unnecessary import

* Remove unnecessary toString() call

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

* fix: Address comments after review

* refactor: Remove unused import

* fix: Lint issues

* fix: Add correct migration files

---------

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

* remove null values from credential export

* fix: Fix an issue with queue mode where all running execution would be returned

* fix: Update n8n node to allow for workflow ids with letters

* set upstream on set branch

* remove typo

* add nodeAccess to credentials

* fix unsaved run check for undefined id

* fix(core): Rename version control feature to source control (#6480)

* rename versionControl to sourceControl

* fix source control tooltip wording

---------

Co-authored-by: Romain Minaud <romain.minaud@gmail.com>

* fix(editor): Pay 548 hide the set up version control button (#6485)

* feat(DebugHelper Node): Fix and include in main app (#6406)

* improve node a bit

* fixing continueOnFail() ton contain error in json

* improve pairedItem

* fix random data returning object results

* fix nanoId length typo

* update pnpm-lock file

---------

Co-authored-by: Marcus <marcus@n8n.io>

* fix(editor): Remove setup source control CTA button

* fix(editor): Remove setup source control CTA button

---------

Co-authored-by: Michael Auerswald <michael.auerswald@gmail.com>
Co-authored-by: Marcus <marcus@n8n.io>

* fix(editor): Update source control docs links (#6488)

* feat(DebugHelper Node): Fix and include in main app (#6406)

* improve node a bit

* fixing continueOnFail() ton contain error in json

* improve pairedItem

* fix random data returning object results

* fix nanoId length typo

* update pnpm-lock file

---------

Co-authored-by: Marcus <marcus@n8n.io>

* feat(editor): Replace root events with event bus events (no-changelog) (#6454)

* feat: replace root events with event bus events

* fix: prevent cypress from replacing global with globalThis in import path

* feat: remove emitter mixin

* fix: replace component events with event bus

* fix: fix linting issue

* fix: fix breaking expression switch

* chore: prettify ndv e2e suite code

* fix(editor): Update source control docs links

---------

Co-authored-by: Michael Auerswald <michael.auerswald@gmail.com>
Co-authored-by: Marcus <marcus@n8n.io>
Co-authored-by: Alex Grozav <alex@grozav.com>

* fix tag endpoint regex

---------

Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Romain Minaud <romain.minaud@gmail.com>
Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
Co-authored-by: Marcus <marcus@n8n.io>
Co-authored-by: Alex Grozav <alex@grozav.com>
This commit is contained in:
Michael Auerswald
2023-06-20 19:13:18 +02:00
committed by GitHub
parent da330f0648
commit c3ba0123ad
156 changed files with 3499 additions and 2594 deletions

View File

@@ -7,7 +7,7 @@ import {
useNodeTypesStore,
useUIStore,
useHistoryStore,
useVersionControlStore,
useSourceControlStore,
} from '@/stores';
import type { INodeUi, XYPosition } from '@/Interface';
import { scaleBigger, scaleReset, scaleSmaller } from '@/utils';
@@ -43,7 +43,7 @@ export const useCanvasStore = defineStore('canvas', () => {
const nodeTypesStore = useNodeTypesStore();
const uiStore = useUIStore();
const historyStore = useHistoryStore();
const versionControlStore = useVersionControlStore();
const sourceControlStore = useSourceControlStore();
const jsPlumbInstanceRef = ref<BrowserJsPlumbInstance>();
const isDragging = ref<boolean>(false);
@@ -59,7 +59,7 @@ export const useCanvasStore = defineStore('canvas', () => {
const isDemo = ref<boolean>(false);
const nodeViewScale = ref<number>(1);
const canvasAddButtonPosition = ref<XYPosition>([1, 1]);
const readOnlyEnv = computed(() => versionControlStore.preferences.branchReadOnly);
const readOnlyEnv = computed(() => sourceControlStore.preferences.branchReadOnly);
watch(readOnlyEnv, (readOnly) => {
if (jsPlumbInstanceRef.value) {

View File

@@ -22,6 +22,6 @@ export * from './webhooks.store';
export * from './workflows.ee.store';
export * from './workflows.store';
export * from './cloudPlan.store';
export * from './versionControl.store';
export * from './sourceControl.store';
export * from './sso.store';
export * from './auditLogs.store';

View File

@@ -2,19 +2,19 @@ import { computed, reactive } from 'vue';
import { defineStore } from 'pinia';
import { EnterpriseEditionFeature } from '@/constants';
import { useSettingsStore } from '@/stores/settings.store';
import * as vcApi from '@/api/versionControl';
import * as vcApi from '@/api/sourceControl';
import { useRootStore } from '@/stores/n8nRoot.store';
import type { VersionControlPreferences } from '@/Interface';
import type { SourceControlPreferences } from '@/Interface';
export const useVersionControlStore = defineStore('versionControl', () => {
export const useSourceControlStore = defineStore('sourceControl', () => {
const rootStore = useRootStore();
const settingsStore = useSettingsStore();
const isEnterpriseVersionControlEnabled = computed(() =>
settingsStore.isEnterpriseFeatureEnabled(EnterpriseEditionFeature.VersionControl),
const isEnterpriseSourceControlEnabled = computed(() =>
settingsStore.isEnterpriseFeatureEnabled(EnterpriseEditionFeature.SourceControl),
);
const preferences = reactive<VersionControlPreferences>({
const preferences = reactive<SourceControlPreferences>({
branchName: '',
branches: [],
authorName: '',
@@ -44,13 +44,13 @@ export const useVersionControlStore = defineStore('versionControl', () => {
await vcApi.pullWorkfolder(rootStore.getRestApiContext, { force });
};
const setPreferences = (data: Partial<VersionControlPreferences>) => {
const setPreferences = (data: Partial<SourceControlPreferences>) => {
Object.assign(preferences, data);
};
const makePreferencesAction =
(action: typeof vcApi.savePreferences | typeof vcApi.updatePreferences) =>
async (preferences: Partial<VersionControlPreferences>) => {
async (preferences: Partial<SourceControlPreferences>) => {
const data = await action(rootStore.getRestApiContext, preferences);
setPreferences(data);
};
@@ -92,7 +92,7 @@ export const useVersionControlStore = defineStore('versionControl', () => {
};
return {
isEnterpriseVersionControlEnabled,
isEnterpriseSourceControlEnabled,
state,
preferences,
pushWorkfolder,

View File

@@ -30,7 +30,7 @@ import {
WORKFLOW_ACTIVE_MODAL_KEY,
WORKFLOW_SETTINGS_MODAL_KEY,
WORKFLOW_SHARE_MODAL_KEY,
VERSION_CONTROL_PUSH_MODAL_KEY,
SOURCE_CONTROL_PUSH_MODAL_KEY,
} from '@/constants';
import type {
CurlToJSONResponse,
@@ -133,7 +133,7 @@ export const useUIStore = defineStore(STORES.UI, {
activeId: null,
showAuthSelector: false,
},
[VERSION_CONTROL_PUSH_MODAL_KEY]: {
[SOURCE_CONTROL_PUSH_MODAL_KEY]: {
open: false,
},
},