mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-23 08:58:26 +00:00
Merge pull request #12734 from ToolJet/fix/version-creation
Fix: Relation "page_permissions" does not exist error on version creation
This commit is contained in:
commit
a4665c86ea
7 changed files with 21 additions and 149 deletions
94
.github/workflows/cypress-appbuilder.yml
vendored
94
.github/workflows/cypress-appbuilder.yml
vendored
|
|
@ -2,7 +2,7 @@ name: Cypress App-Builder
|
|||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [labeled, unlabeled, closed]
|
||||
types: [labeled]
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
|
|
@ -12,22 +12,18 @@ env:
|
|||
jobs:
|
||||
Cypress-App-Builder:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
if: |
|
||||
github.event.action == 'labeled' &&
|
||||
(
|
||||
github.event.label.name == 'run-cypress' ||
|
||||
github.event.label.name == 'run-ce-app-builder' ||
|
||||
github.event.label.name == 'run-ee-app-builder'
|
||||
)
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ce-app-builder') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ee-app-builder') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-cypress')
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
edition: >-
|
||||
${{
|
||||
contains(github.event.pull_request.labels.*.name, 'run-cypress') && fromJson('["ce", "ee"]') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ce-app-builder') && fromJson('["ce"]') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ee-app-builder') && fromJson('["ee"]') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-cypress') && fromJson('["ce", "ee"]') ||
|
||||
fromJson('[]')
|
||||
}}
|
||||
|
||||
|
|
@ -164,8 +160,8 @@ jobs:
|
|||
|
||||
Cypress-App-builder-Subpath:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
if: ${{ github.event.action == 'labeled' && github.event.label.name == 'run-cypress-app-builder-subpath' }}
|
||||
if: contains(github.event.pull_request.labels.*.name, 'run-cypress') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-cypress-app-builder-subpath')
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
|
|
@ -173,82 +169,6 @@ jobs:
|
|||
with:
|
||||
ref: ${{ github.event.pull_request.head.ref }}
|
||||
|
||||
# Create Docker Buildx builder with platform configuration
|
||||
- name: Set up Docker Buildx
|
||||
run: |
|
||||
mkdir -p ~/.docker/cli-plugins
|
||||
curl -SL https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx
|
||||
chmod a+x ~/.docker/cli-plugins/docker-buildx
|
||||
docker buildx create --name mybuilder --platform linux/arm64,linux/amd64,linux/amd64/v2,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
|
||||
docker buildx use mybuilder
|
||||
|
||||
- name: Set DOCKER_CLI_EXPERIMENTAL
|
||||
run: echo "DOCKER_CLI_EXPERIMENTAL=enabled" >> $GITHUB_ENV
|
||||
|
||||
- name: use mybuilder buildx
|
||||
run: docker buildx use mybuilder
|
||||
|
||||
- name: Build docker image
|
||||
run: docker buildx build --platform=linux/amd64 -f docker/production.Dockerfile . -t tooljet/tj-osv:cypressplaform
|
||||
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
echo "TOOLJET_HOST=http://localhost:3000" >> .env
|
||||
echo "LOCKBOX_MASTER_KEY=cd97331a419c09387bef49787f7da8d2a81d30733f0de6bed23ad8356d2068b2" >> .env
|
||||
echo "SECRET_KEY_BASE=7073b9a35a15dd20914ae17e36a693093f25b74b96517a5fec461fc901c51e011cd142c731bee48c5081ec8bac321c1f259ef097ef2a16f25df17a3798c03426" >> .env
|
||||
echo "PG_DB=tooljet_development" >> .env
|
||||
echo "PG_USER=postgres" >> .env
|
||||
echo "PG_HOST=postgres" >> .env
|
||||
echo "PG_PASS=postgres" >> .env
|
||||
echo "PG_PORT=5432" >> .env
|
||||
echo "ENABLE_TOOLJET_DB=true" >> .env
|
||||
echo "TOOLJET_DB=tooljet_db" >> .env
|
||||
echo "TOOLJET_DB_USER=postgres" >> .env
|
||||
echo "TOOLJET_DB_HOST=postgres" >> .env
|
||||
echo "TOOLJET_DB_PASS=postgres" >> .env
|
||||
echo "PGRST_JWT_SECRET=r9iMKoe5CRMgvJBBtp4HrqN7QiPpUToj" >> .env
|
||||
echo "PGRST_HOST=postgrest" >> .env
|
||||
echo "PGRST_DB_URI=postgres://postgres:postgres@postgres/tooljet_db" >> .env
|
||||
echo "SSO_GIT_OAUTH2_CLIENT_ID=dummy" >> .env
|
||||
echo "SSO_GIT_OAUTH2_CLIENT_SECRET=dummy" >> .env
|
||||
echo "SSO_GIT_OAUTH2_HOST=dummy" >> .env
|
||||
echo "SSO_GOOGLE_OAUTH2_CLIENT_ID=dummy" >> .env
|
||||
echo "SUB_PATH=/apps/tooljet/" >> .env
|
||||
echo "NODE_ENV=production" >> .env
|
||||
echo "SERVE_CLIENT=true" >> .env
|
||||
echo "ENABLE_PRIVATE_APP_EMBED=true" >> .env
|
||||
|
||||
- name: Pulling the docker-compose file
|
||||
run: curl -LO https://tooljet-test.s3.us-west-1.amazonaws.com/docker-compose.yaml && mkdir postgres_data
|
||||
|
||||
- name: Run docker-compose file
|
||||
run: docker-compose up -d
|
||||
|
||||
- name: Checking containers
|
||||
run: docker ps -a
|
||||
|
||||
- name: docker logs
|
||||
run: sudo docker logs Tooljet-app
|
||||
|
||||
- name: Wait for the server to be ready
|
||||
run: |
|
||||
timeout 1500 bash -c '
|
||||
until curl --silent --fail http://localhost:80/apps/tooljet/; do
|
||||
sleep 5
|
||||
done'
|
||||
|
||||
- name: Seeding (Setup Super Admin)
|
||||
run: |
|
||||
curl 'http://localhost:3000/api/onboarding/setup-super-admin' \
|
||||
-H 'Content-Type: application/json' \
|
||||
--data-raw '{
|
||||
"companyName": "ToolJet",,
|
||||
"name": "The Developer",
|
||||
"workspaceName": "Tooljet'\''s workspace",
|
||||
"email": "dev@tooljet.io",
|
||||
"password": "password"
|
||||
}'
|
||||
|
||||
- name: Create Cypress environment file
|
||||
id: create-json
|
||||
uses: jsdaniell/create-json@1.1.2
|
||||
|
|
|
|||
17
.github/workflows/cypress-marketplace.yml
vendored
17
.github/workflows/cypress-marketplace.yml
vendored
|
|
@ -2,7 +2,7 @@ name: Cypress Marketplace
|
|||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [labeled, unlabeled, closed]
|
||||
types: [labeled]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
|
|
@ -14,13 +14,9 @@ jobs:
|
|||
Cypress-Marketplace:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
if: |
|
||||
github.event.action == 'labeled' &&
|
||||
(
|
||||
github.event.label.name == 'run-cypress' ||
|
||||
github.event.label.name == 'run-ce-cypress-marketplace' ||
|
||||
github.event.label.name == 'run-ee-cypress-marketplace'
|
||||
)
|
||||
if: contains(github.event.pull_request.labels.*.name, 'run-cypress') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ce-cypress-marketplace') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ee-cypress-marketplace')
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
|
|
@ -44,7 +40,7 @@ jobs:
|
|||
mkdir -p ~/.docker/cli-plugins
|
||||
curl -SL https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx
|
||||
chmod a+x ~/.docker/cli-plugins/docker-buildx
|
||||
docker buildx create --name mybuilder --platform linux/arm64,linux/amd64,linux/amd64/v2,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
|
||||
docker buildx create --name mybuilder --platform linux/arm64,linux/amd64
|
||||
docker buildx use mybuilder
|
||||
|
||||
- name: Set DOCKER_CLI_EXPERIMENTAL
|
||||
|
|
@ -189,7 +185,8 @@ jobs:
|
|||
Cypress-Marketplace-Subpath:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
if: ${{ github.event.action == 'labeled' && github.event.label.name == 'run-cypress-marketplace-subpath' }}
|
||||
if: contains(github.event.pull_request.labels.*.name, 'run-cypress') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-cypress-marketplace-subpath')
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
|
|
|
|||
13
.github/workflows/cypress-platform.yml
vendored
13
.github/workflows/cypress-platform.yml
vendored
|
|
@ -2,7 +2,7 @@ name: Cypress Platform
|
|||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [labeled, unlabeled, closed]
|
||||
types: [labeled]
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
|
|
@ -12,14 +12,9 @@ env:
|
|||
jobs:
|
||||
Cypress-Platform:
|
||||
runs-on: ubuntu-22.04
|
||||
if: |
|
||||
github.event.action == 'labeled' &&
|
||||
(
|
||||
github.event.label.name == 'run-cypress' ||
|
||||
github.event.label.name == 'run-ce-cypress-platform' ||
|
||||
github.event.label.name == 'run-ee-cypress-platform'
|
||||
)
|
||||
|
||||
if: contains(github.event.pull_request.labels.*.name, 'run-cypress') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ce-cypress-platform') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ee-cypress-platform')
|
||||
strategy:
|
||||
matrix:
|
||||
edition: >-
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ import {
|
|||
addSupportCSAData,
|
||||
} from "Support/utils/events";
|
||||
|
||||
describe("Editor- Test Button widget", () => {
|
||||
describe("Editor- Test Button widget ", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.apiCreateApp(`${fake.companyName}-button-App`);
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 84ec48d0f64fd6dc5f7677f71a5119219cc4ada4
|
||||
Subproject commit b9e73f87b9062e06c49c2c73add6b82ba21dcacf
|
||||
|
|
@ -6,7 +6,7 @@ import { DataSource } from '@entities/data_source.entity';
|
|||
import { DataSourceOptions } from '@entities/data_source_options.entity';
|
||||
import { EventHandler, Target } from '@entities/event_handler.entity';
|
||||
import { dbTransactionWrap } from '@helpers/database.helper';
|
||||
import { EntityManager, In } from 'typeorm';
|
||||
import { EntityManager } from 'typeorm';
|
||||
import { Credential } from 'src/entities/credential.entity';
|
||||
import * as uuid from 'uuid';
|
||||
import { Page } from '@entities/page.entity';
|
||||
|
|
@ -22,8 +22,6 @@ import { DataSourcesRepository } from '@modules/data-sources/repository';
|
|||
import { DataQueryRepository } from '@modules/data-queries/repository';
|
||||
import { AppEnvironmentUtilService } from '@modules/app-environments/util.service';
|
||||
import { IVersionsCreateService } from '../interfaces/services/ICreateService';
|
||||
import { PagePermission } from '@entities/page_permissions.entity';
|
||||
import { PageUser } from '@entities/page_users.entity';
|
||||
|
||||
@Injectable()
|
||||
export class VersionsCreateService implements IVersionsCreateService {
|
||||
|
|
@ -403,44 +401,6 @@ export class VersionsCreateService implements IVersionsCreateService {
|
|||
homePageId = savedPage.id;
|
||||
}
|
||||
|
||||
const oldPermissions = await manager.find(PagePermission, {
|
||||
where: { pageId: page.id },
|
||||
});
|
||||
|
||||
const newPermissions = oldPermissions.map((permission) => {
|
||||
return manager.create(PagePermission, {
|
||||
...permission,
|
||||
id: undefined,
|
||||
pageId: oldPageToNewPageMapping[permission.pageId],
|
||||
});
|
||||
});
|
||||
|
||||
await manager.save(PagePermission, newPermissions);
|
||||
|
||||
const permissionIdMap = new Map<string, string>();
|
||||
oldPermissions.forEach((oldPerm, index) => {
|
||||
const newPerm = newPermissions[index];
|
||||
permissionIdMap.set(oldPerm.id, newPerm.id);
|
||||
});
|
||||
|
||||
const oldPermissionIds = oldPermissions.map((p) => p.id);
|
||||
|
||||
const oldPageUsers = await manager.find(PageUser, {
|
||||
where: {
|
||||
pagePermissionsId: In(oldPermissionIds),
|
||||
},
|
||||
});
|
||||
|
||||
const newPageUsers = oldPageUsers.map((pu) =>
|
||||
manager.create(PageUser, {
|
||||
...pu,
|
||||
id: undefined,
|
||||
pagePermissionsId: permissionIdMap.get(pu.pagePermissionsId),
|
||||
})
|
||||
);
|
||||
|
||||
await manager.save(PageUser, newPageUsers);
|
||||
|
||||
const pageEvents = allEvents.filter((event) => event.sourceId === page.id);
|
||||
|
||||
pageEvents.forEach(async (event, index) => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue