diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b103fc9839..a19575c820 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -15,6 +15,8 @@ on: - mor - amit - ariel + - alex + confirm-env: type: string description: Confirm the environment to deploy diff --git a/ee/packages/amplication-git-pull-service/package-lock.json b/ee/packages/amplication-git-pull-service/package-lock.json index ff9a5e0c93..271e4b9c02 100644 --- a/ee/packages/amplication-git-pull-service/package-lock.json +++ b/ee/packages/amplication-git-pull-service/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/git-pull-service", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/ee/packages/amplication-git-pull-service/package.json b/ee/packages/amplication-git-pull-service/package.json index 108c0c39bb..7cac2d4ab3 100644 --- a/ee/packages/amplication-git-pull-service/package.json +++ b/ee/packages/amplication-git-pull-service/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/git-pull-service", - "version": "0.14.10", + "version": "0.14.11", "private": true, "scripts": { "check-format": "prettier --check \"**/*.{js,ts,json,gql,md,yaml}\"", @@ -23,7 +23,7 @@ "docker:build": "docker build ." }, "dependencies": { - "@amplication/kafka": "^0.14.10", + "@amplication/kafka": "^0.14.11", "@nestjs/common": "8.4.3", "@nestjs/config": "1.1.5", "@nestjs/core": "8.2.3", diff --git a/ee/packages/amplication-git-pull-service/src/core/gitPullEvent/gitPullEvent.service.ts b/ee/packages/amplication-git-pull-service/src/core/gitPullEvent/gitPullEvent.service.ts index adf97313aa..77504934e3 100644 --- a/ee/packages/amplication-git-pull-service/src/core/gitPullEvent/gitPullEvent.service.ts +++ b/ee/packages/amplication-git-pull-service/src/core/gitPullEvent/gitPullEvent.service.ts @@ -13,7 +13,7 @@ import { IGitPullEventRepository } from '../../contracts/interfaces/gitPullEvent import { IStorage } from '../../contracts/interfaces/storage.interface'; import { IGitClient } from '../../contracts/interfaces/gitClient.interface'; import { IGitHostProviderFactory } from '../../contracts/interfaces/gitHostProviderFactory.interface'; -import { DEFAULT_GITHUB_PULL_FOLDER } from 'src/constants'; +import { DEFAULT_GITHUB_PULL_FOLDER } from '../../constants'; const ROOT_STORAGE_DIR = 'STORAGE_PATH'; const PRISMA_SKIP_VALUE = 'MAX_SNAPSHOTS'; diff --git a/ee/packages/amplication-git-push-webhook-service/package-lock.json b/ee/packages/amplication-git-push-webhook-service/package-lock.json index 2f91cfb246..5733db9661 100644 --- a/ee/packages/amplication-git-push-webhook-service/package-lock.json +++ b/ee/packages/amplication-git-push-webhook-service/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/git-push-webhook-service", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/ee/packages/amplication-git-push-webhook-service/package.json b/ee/packages/amplication-git-push-webhook-service/package.json index b7b3b77f02..fd4e270dae 100644 --- a/ee/packages/amplication-git-push-webhook-service/package.json +++ b/ee/packages/amplication-git-push-webhook-service/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/git-push-webhook-service", - "version": "0.14.10", + "version": "0.14.11", "description": "", "author": "", "private": true, @@ -18,8 +18,8 @@ "docker:down": "docker-compose down --volumes" }, "dependencies": { - "@amplication/kafka": "^0.14.10", - "@amplication/prisma-db": "^0.14.10", + "@amplication/kafka": "^0.14.11", + "@amplication/prisma-db": "^0.14.11", "@nestjs/common": "8.2.3", "@nestjs/config": "2.0.0", "@nestjs/core": "8.4.4", diff --git a/ee/packages/amplication-git-push-webhook-service/src/contracts/queue.interface.ts b/ee/packages/amplication-git-push-webhook-service/src/contracts/queue.interface.ts index 70fd503a67..a5bc96fe6a 100644 --- a/ee/packages/amplication-git-push-webhook-service/src/contracts/queue.interface.ts +++ b/ee/packages/amplication-git-push-webhook-service/src/contracts/queue.interface.ts @@ -1,4 +1,4 @@ -import { CreateRepositoryPushRequest } from 'src/entities/dto/CreateRepositoryPushRequest'; +import { CreateRepositoryPushRequest } from '../entities/dto/CreateRepositoryPushRequest'; export interface QueueInterface { createPushRequest(createRepositoryPushRequest: CreateRepositoryPushRequest); diff --git a/ee/packages/amplication-git-push-webhook-service/src/repositories/gitOrganization.repository.ts b/ee/packages/amplication-git-push-webhook-service/src/repositories/gitOrganization.repository.ts index 2a0b71a1d0..d5cd479c32 100644 --- a/ee/packages/amplication-git-push-webhook-service/src/repositories/gitOrganization.repository.ts +++ b/ee/packages/amplication-git-push-webhook-service/src/repositories/gitOrganization.repository.ts @@ -1,6 +1,6 @@ import { GitOrganization, PrismaService } from '@amplication/prisma-db'; import { Injectable } from '@nestjs/common'; -import { GitOrganizationInterface } from 'src/contracts/gitOrganization.interface'; +import { GitOrganizationInterface } from '../contracts/gitOrganization.interface'; import { EnumProvider } from '../entities/enums/provider'; @Injectable() diff --git a/lerna.json b/lerna.json index 92c079ee24..95714168ad 100644 --- a/lerna.json +++ b/lerna.json @@ -5,7 +5,7 @@ "packages/amplication-data-service-generator/src/admin/static/", "packages/amplication-data-service-generator/src/server/static/" ], - "version": "0.14.10", + "version": "0.14.11", "command": { "bootstrap": { "ignore": [ diff --git a/package-lock.json b/package-lock.json index c357c6b8a2..98085b7861 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,7 +4,6 @@ "requires": true, "packages": { "": { - "name": "amplication", "dependencies": { "lerna": "4.0.0", "ora": "5.4.0", @@ -5658,7 +5657,7 @@ "node_modules/decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "engines": { "node": ">=0.10" } @@ -6384,7 +6383,7 @@ "node_modules/filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=", "engines": { "node": ">=0.10.0" } @@ -8906,10 +8905,7 @@ "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true, - "engines": { - "node": "*" - } + "dev": true }, "node_modules/jsonparse": { "version": "1.3.1", @@ -11407,9 +11403,9 @@ } }, "node_modules/parse-path": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz", - "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz", + "integrity": "sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==", "dependencies": { "is-ssh": "^1.3.0", "protocols": "^1.4.0", @@ -11418,13 +11414,13 @@ } }, "node_modules/parse-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.2.tgz", - "integrity": "sha512-uCSjOvD3T+6B/sPWhR+QowAZcU/o4bjPrVBQBGFxcDF6J6FraCGIaDBsdoQawiaaAVdHvtqBe3w3vKlfBKySOQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", + "integrity": "sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw==", "dependencies": { "is-ssh": "^1.3.0", "normalize-url": "^6.1.0", - "parse-path": "^4.0.4", + "parse-path": "^4.0.0", "protocols": "^1.4.0" } }, @@ -11724,9 +11720,9 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.2.tgz", + "integrity": "sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==", "dependencies": { "side-channel": "^1.0.4" }, @@ -12899,11 +12895,6 @@ "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, "engines": { "node": ">=0.10.0" } @@ -12953,7 +12944,7 @@ "node_modules/strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", "engines": { "node": ">=4" } @@ -14149,7 +14140,7 @@ "dev": true, "peer": true, "engines": { - "node": ">=10.0.0" + "node": ">=8.3.0" }, "peerDependencies": { "bufferutil": "^4.0.1", @@ -18765,7 +18756,7 @@ "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==" + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { "version": "6.0.0", @@ -19323,7 +19314,7 @@ "filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=" }, "find-up": { "version": "4.1.0", @@ -23180,9 +23171,9 @@ } }, "parse-path": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz", - "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz", + "integrity": "sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==", "requires": { "is-ssh": "^1.3.0", "protocols": "^1.4.0", @@ -23191,13 +23182,13 @@ } }, "parse-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.2.tgz", - "integrity": "sha512-uCSjOvD3T+6B/sPWhR+QowAZcU/o4bjPrVBQBGFxcDF6J6FraCGIaDBsdoQawiaaAVdHvtqBe3w3vKlfBKySOQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", + "integrity": "sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw==", "requires": { "is-ssh": "^1.3.0", "normalize-url": "^6.1.0", - "parse-path": "^4.0.4", + "parse-path": "^4.0.0", "protocols": "^1.4.0" } }, @@ -23426,9 +23417,9 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.2.tgz", + "integrity": "sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==", "requires": { "side-channel": "^1.0.4" } @@ -24385,7 +24376,7 @@ "strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" }, "string_decoder": { "version": "1.3.0", diff --git a/packages/amplication-cli/package-lock.json b/packages/amplication-cli/package-lock.json index f009dad90d..413326ca2a 100644 --- a/packages/amplication-cli/package-lock.json +++ b/packages/amplication-cli/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/cli", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-cli/package.json b/packages/amplication-cli/package.json index d9f88519b0..99ef9caf62 100644 --- a/packages/amplication-cli/package.json +++ b/packages/amplication-cli/package.json @@ -1,7 +1,7 @@ { "name": "@amplication/cli", "description": "Amplication CLI", - "version": "0.14.10", + "version": "0.14.11", "repository": { "type": "git", "url": "https://github.com/amplication/amplication.git" diff --git a/packages/amplication-cli/src/models.ts b/packages/amplication-cli/src/models.ts index 0b4abe0829..c839f75629 100644 --- a/packages/amplication-cli/src/models.ts +++ b/packages/amplication-cli/src/models.ts @@ -902,7 +902,7 @@ export enum EnumPendingChangeAction { Update = 'Update', } -export enum EnumPendingChangeResourceType { +export enum EnumPendingChangeOriginType { Block = 'Block', Entity = 'Entity', } @@ -1333,13 +1333,13 @@ export type MutationUpdateWorkspaceArgs = { export type PendingChange = { __typename?: 'PendingChange'; action: EnumPendingChangeAction; - resource: PendingChangeResource; - resourceId: Scalars['String']; - resourceType: EnumPendingChangeResourceType; + origin: PendingChangeOrigin; + originId: Scalars['String']; + originType: EnumPendingChangeOriginType; versionNumber: Scalars['Int']; }; -export type PendingChangeResource = Block | Entity; +export type PendingChangeOrigin = Block | Entity; export type PendingChangesDiscardInput = { resource: WhereParentIdInput; diff --git a/packages/amplication-client/package-lock.json b/packages/amplication-client/package-lock.json index f2bee23294..6a6bec7c35 100644 --- a/packages/amplication-client/package-lock.json +++ b/packages/amplication-client/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/client", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-client/package.json b/packages/amplication-client/package.json index 328a607475..63ed070c03 100644 --- a/packages/amplication-client/package.json +++ b/packages/amplication-client/package.json @@ -1,10 +1,10 @@ { "name": "@amplication/client", - "version": "0.14.10", + "version": "0.14.11", "private": true, "dependencies": { - "@amplication/code-gen-types": "^0.14.10", - "@amplication/design-system": "^0.14.10", + "@amplication/code-gen-types": "^0.14.11", + "@amplication/design-system": "^0.14.11", "@apollo/client": "3.3.16", "@extra-set/difference": "2.2.3", "@monaco-editor/react": "^4.4.4", diff --git a/packages/amplication-client/src/Resource/ResourceLayout.tsx b/packages/amplication-client/src/Resource/ResourceLayout.tsx index 2b0a5bb79d..c3e40c34e6 100644 --- a/packages/amplication-client/src/Resource/ResourceLayout.tsx +++ b/packages/amplication-client/src/Resource/ResourceLayout.tsx @@ -78,13 +78,13 @@ function ResourceLayout({ match }: Props) { const addChange = useCallback( ( - resourceId: string, - resourceType: models.EnumPendingChangeResourceType + originId: string, + originType: models.EnumPendingChangeOriginType ) => { const existingChange = pendingChanges.find( (changeItem) => - changeItem.resourceId === resourceId && - changeItem.resourceType === resourceType + changeItem.originId === originId && + changeItem.originType === originType ); if (existingChange) { //reassign pending changes to trigger refresh @@ -93,8 +93,8 @@ function ResourceLayout({ match }: Props) { setPendingChanges( pendingChanges.concat([ { - resourceId, - resourceType, + originId, + originType, }, ]) ); @@ -105,14 +105,14 @@ function ResourceLayout({ match }: Props) { const addEntity = useCallback( (entityId: string) => { - addChange(entityId, models.EnumPendingChangeResourceType.Entity); + addChange(entityId, models.EnumPendingChangeOriginType.Entity); }, [addChange] ); const addBlock = useCallback( (blockId: string) => { - addChange(blockId, models.EnumPendingChangeResourceType.Block); + addChange(blockId, models.EnumPendingChangeOriginType.Block); }, [addChange] ); @@ -273,8 +273,8 @@ export default enhance(ResourceLayout); export const GET_PENDING_CHANGES_STATUS = gql` query pendingChangesStatus($resourceId: String!) { pendingChanges(where: { resource: { id: $resourceId } }) { - resourceId - resourceType + originId + originType } } `; diff --git a/packages/amplication-client/src/VersionControl/CommitPage.tsx b/packages/amplication-client/src/VersionControl/CommitPage.tsx index 4cf860c6b7..3afb6a258a 100644 --- a/packages/amplication-client/src/VersionControl/CommitPage.tsx +++ b/packages/amplication-client/src/VersionControl/CommitPage.tsx @@ -114,7 +114,7 @@ const CommitPage: React.FC = ({ match }) => { {data.commit.changes.map((change) => ( { //remove entities from cache to reflect discarded changes for (var change of pendingChanges) { if ( - change.resourceType === models.EnumPendingChangeResourceType.Entity + change.originType === models.EnumPendingChangeOriginType.Entity ) { cache.evict({ id: cache.identify({ - id: change.resourceId, + id: change.originId, __typename: "Entity", }), }); @@ -37,7 +37,7 @@ const DiscardChanges = ({ resourceId, onComplete, onCancel }: Props) => { /**@todo: handle other types of blocks */ cache.evict({ id: cache.identify({ - id: change.resourceId, + id: change.originId, __typename: "ServiceSettings", }), }); diff --git a/packages/amplication-client/src/VersionControl/LastCommit.tsx b/packages/amplication-client/src/VersionControl/LastCommit.tsx index 911bc2c371..f228bf0ee8 100644 --- a/packages/amplication-client/src/VersionControl/LastCommit.tsx +++ b/packages/amplication-client/src/VersionControl/LastCommit.tsx @@ -143,11 +143,11 @@ export const GET_LAST_COMMIT = gql` } } changes { - resourceId + originId action - resourceType + originType versionNumber - resource { + origin { __typename ... on Entity { id diff --git a/packages/amplication-client/src/VersionControl/PendingChange.tsx b/packages/amplication-client/src/VersionControl/PendingChange.tsx index cafd918b03..089cfedadf 100644 --- a/packages/amplication-client/src/VersionControl/PendingChange.tsx +++ b/packages/amplication-client/src/VersionControl/PendingChange.tsx @@ -13,7 +13,7 @@ const TOOLTIP_DIRECTION = "ne"; type Props = { change: models.PendingChange; resourceId: string; - linkToResource?: boolean; + linkToOrigin?: boolean; }; const ACTION_TO_LABEL: { @@ -27,14 +27,14 @@ const ACTION_TO_LABEL: { const PendingChange = ({ change, resourceId, - linkToResource = false, + linkToOrigin = false, }: Props) => { - const {currentWorkspace, currentProject} = useContext(AppContext); + const {currentWorkspace, currentProject} = useContext(AppContext); /**@todo: update the url for other types of blocks */ const url = - change.resourceType === models.EnumPendingChangeResourceType.Entity - ? `/${currentWorkspace?.id}/${currentProject?.id}/${resourceId}/entities/${change.resourceId}` + change.originType === models.EnumPendingChangeOriginType.Entity + ? `/${currentWorkspace?.id}/${currentProject?.id}/${resourceId}/entities/${change.originId}` : `/${currentWorkspace?.id}/${currentProject?.id}/${resourceId}/update`; const isDeletedEntity = @@ -50,15 +50,15 @@ const PendingChange = ({ className={`${CLASS_NAME}__tooltip_deleted`} >
- {change.resource.displayName} + {change.origin.displayName}
); } - if (linkToResource) { - return {change.resource.displayName}; + if (linkToOrigin) { + return {change.origin.displayName}; } - return change.resource.displayName; + return change.origin.displayName; }; return ( diff --git a/packages/amplication-client/src/VersionControl/PendingChangeDiffBlock.tsx b/packages/amplication-client/src/VersionControl/PendingChangeDiffBlock.tsx index 2a86a6d68c..1aca411a66 100644 --- a/packages/amplication-client/src/VersionControl/PendingChangeDiffBlock.tsx +++ b/packages/amplication-client/src/VersionControl/PendingChangeDiffBlock.tsx @@ -35,7 +35,7 @@ const PendingChangeDiffBlock = ({ TData >(GET_BLOCK_VERSION, { variables: { - id: change.resourceId, + id: change.originId, whereVersion: compareType === EnumCompareType.Pending ? { @@ -52,7 +52,7 @@ const PendingChangeDiffBlock = ({ TData >(GET_BLOCK_VERSION, { variables: { - id: change.resourceId, + id: change.originId, whereVersion: compareType === EnumCompareType.Pending ? { diff --git a/packages/amplication-client/src/VersionControl/PendingChangeDiffEntity.tsx b/packages/amplication-client/src/VersionControl/PendingChangeDiffEntity.tsx index 977533b371..3104758c06 100644 --- a/packages/amplication-client/src/VersionControl/PendingChangeDiffEntity.tsx +++ b/packages/amplication-client/src/VersionControl/PendingChangeDiffEntity.tsx @@ -70,7 +70,7 @@ const PendingChangeDiffEntity = ({ TData >(GET_ENTITY_VERSION, { variables: { - id: change.resourceId, + id: change.originId, whereVersion: compareType === EnumCompareType.Pending ? { @@ -87,7 +87,7 @@ const PendingChangeDiffEntity = ({ TData >(GET_ENTITY_VERSION, { variables: { - id: change.resourceId, + id: change.originId, whereVersion: compareType === EnumCompareType.Pending ? { diff --git a/packages/amplication-client/src/VersionControl/PendingChangeWithCompare.tsx b/packages/amplication-client/src/VersionControl/PendingChangeWithCompare.tsx index 702eac19d8..344954391c 100644 --- a/packages/amplication-client/src/VersionControl/PendingChangeWithCompare.tsx +++ b/packages/amplication-client/src/VersionControl/PendingChangeWithCompare.tsx @@ -29,16 +29,16 @@ const PendingChangeWithCompare = ({ className={CLASS_NAME} headerContent={} > - {change.resourceType === models.EnumPendingChangeResourceType.Entity ? ( + {change.originType === models.EnumPendingChangeOriginType.Entity ? ( ) : ( {
{data?.pendingChanges.map((change) => ( ))}
@@ -138,11 +138,11 @@ export default PendingChanges; export const GET_PENDING_CHANGES = gql` query pendingChanges($resourceId: String!) { pendingChanges(where: { resource: { id: $resourceId } }) { - resourceId + originId action - resourceType + originType versionNumber - resource { + origin { __typename ... on Entity { id diff --git a/packages/amplication-client/src/VersionControl/PendingChangesPage.tsx b/packages/amplication-client/src/VersionControl/PendingChangesPage.tsx index 5127eccfb9..4cea8a374a 100644 --- a/packages/amplication-client/src/VersionControl/PendingChangesPage.tsx +++ b/packages/amplication-client/src/VersionControl/PendingChangesPage.tsx @@ -72,7 +72,7 @@ const PendingChangesPage = ({ match }: Props) => {
{data?.pendingChanges.map((change) => ( ; export type PendingChangeStatusData = { @@ -13,7 +13,7 @@ export type PendingChangeStatusData = { }; const usePendingChanges = (currentResource: models.Resource | undefined) => { - // TODO: replace currenResource with currentProject + // TODO: replace currentResource with currentProject const [pendingChanges, setPendingChanges] = useState([]); const [commitRunning, setCommitRunning] = useState(false); const [isError, setIsError] = useState(false); @@ -34,14 +34,11 @@ const usePendingChanges = (currentResource: models.Resource | undefined) => { }, [pendingChangesData, setPendingChanges]); const addChange = useCallback( - ( - resourceId: string, - resourceType: models.EnumPendingChangeResourceType - ) => { + (originId: string, originType: models.EnumPendingChangeOriginType) => { const existingChange = pendingChanges.find( (changeItem) => - changeItem.resourceId === resourceId && - changeItem.resourceType === resourceType + changeItem.originId === originId && + changeItem.originType === originType ); if (existingChange) { //reassign pending changes to trigger refresh @@ -50,8 +47,8 @@ const usePendingChanges = (currentResource: models.Resource | undefined) => { setPendingChanges( pendingChanges.concat([ { - resourceId, - resourceType, + originId, + originType, }, ]) ); @@ -62,14 +59,14 @@ const usePendingChanges = (currentResource: models.Resource | undefined) => { const addEntity = useCallback( (entityId: string) => { - addChange(entityId, models.EnumPendingChangeResourceType.Entity); + addChange(entityId, models.EnumPendingChangeOriginType.Entity); }, [addChange] ); const addBlock = useCallback( (blockId: string) => { - addChange(blockId, models.EnumPendingChangeResourceType.Block); + addChange(blockId, models.EnumPendingChangeOriginType.Block); }, [addChange] ); diff --git a/packages/amplication-client/src/models.ts b/packages/amplication-client/src/models.ts index 885a7e6ded..b6635a3a2c 100644 --- a/packages/amplication-client/src/models.ts +++ b/packages/amplication-client/src/models.ts @@ -902,7 +902,7 @@ export enum EnumPendingChangeAction { Update = "Update", } -export enum EnumPendingChangeResourceType { +export enum EnumPendingChangeOriginType { Block = "Block", Entity = "Entity", } @@ -1333,13 +1333,13 @@ export type MutationUpdateWorkspaceArgs = { export type PendingChange = { __typename?: "PendingChange"; action: EnumPendingChangeAction; - resource: PendingChangeResource; - resourceId: Scalars["String"]; - resourceType: EnumPendingChangeResourceType; + origin: PendingChangeOrigin; + originId: Scalars["String"]; + originType: EnumPendingChangeOriginType; versionNumber: Scalars["Int"]; }; -export type PendingChangeResource = Block | Entity; +export type PendingChangeOrigin = Block | Entity; export type PendingChangesDiscardInput = { resource: WhereParentIdInput; diff --git a/packages/amplication-code-gen-types/package.json b/packages/amplication-code-gen-types/package.json index 901c3bcc6f..7de500fa29 100644 --- a/packages/amplication-code-gen-types/package.json +++ b/packages/amplication-code-gen-types/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/code-gen-types", - "version": "0.14.10", + "version": "0.14.11", "description": "This library supplies all the contracts for Amplication Code Generation. The purpose is to make the contracts available for inclusion in plugins.", "main": "dist/index.js", "author": { diff --git a/packages/amplication-code-gen-types/src/models.ts b/packages/amplication-code-gen-types/src/models.ts index 885a7e6ded..b6635a3a2c 100644 --- a/packages/amplication-code-gen-types/src/models.ts +++ b/packages/amplication-code-gen-types/src/models.ts @@ -902,7 +902,7 @@ export enum EnumPendingChangeAction { Update = "Update", } -export enum EnumPendingChangeResourceType { +export enum EnumPendingChangeOriginType { Block = "Block", Entity = "Entity", } @@ -1333,13 +1333,13 @@ export type MutationUpdateWorkspaceArgs = { export type PendingChange = { __typename?: "PendingChange"; action: EnumPendingChangeAction; - resource: PendingChangeResource; - resourceId: Scalars["String"]; - resourceType: EnumPendingChangeResourceType; + origin: PendingChangeOrigin; + originId: Scalars["String"]; + originType: EnumPendingChangeOriginType; versionNumber: Scalars["Int"]; }; -export type PendingChangeResource = Block | Entity; +export type PendingChangeOrigin = Block | Entity; export type PendingChangesDiscardInput = { resource: WhereParentIdInput; diff --git a/packages/amplication-data-service-generator/package-lock.json b/packages/amplication-data-service-generator/package-lock.json index 6789b5a6a5..9f097c8e75 100644 --- a/packages/amplication-data-service-generator/package-lock.json +++ b/packages/amplication-data-service-generator/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/data-service-generator", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-data-service-generator/package.json b/packages/amplication-data-service-generator/package.json index 16686f4719..cad108c929 100644 --- a/packages/amplication-data-service-generator/package.json +++ b/packages/amplication-data-service-generator/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/data-service-generator", - "version": "0.14.10", + "version": "0.14.11", "private": true, "main": "./dist/index.js", "scripts": { @@ -19,7 +19,7 @@ "update-test-data-service-snapshot": "jest -u src/tests/*.spec.ts && jest -u src/tests/server" }, "dependencies": { - "@amplication/code-gen-types": "^0.14.10", + "@amplication/code-gen-types": "^0.14.11", "@babel/parser": "7.14.7", "@extra-set/difference": "2.2.4", "camel-case": "4.1.2", diff --git a/packages/amplication-data-service-generator/src/admin/static/package-lock.json b/packages/amplication-data-service-generator/src/admin/static/package-lock.json index 1172f7889c..5e7f10aca0 100644 --- a/packages/amplication-data-service-generator/src/admin/static/package-lock.json +++ b/packages/amplication-data-service-generator/src/admin/static/package-lock.json @@ -1,6 +1,6 @@ { "name": "admin-template", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-data-service-generator/src/admin/static/package.json b/packages/amplication-data-service-generator/src/admin/static/package.json index 1532d2d355..7dd7c7c492 100644 --- a/packages/amplication-data-service-generator/src/admin/static/package.json +++ b/packages/amplication-data-service-generator/src/admin/static/package.json @@ -1,6 +1,6 @@ { "name": "admin-template", - "version": "0.14.10", + "version": "0.14.11", "private": true, "dependencies": { "@apollo/client": "3.6.9", diff --git a/packages/amplication-data-service-generator/src/models.ts b/packages/amplication-data-service-generator/src/models.ts index 885a7e6ded..b6635a3a2c 100644 --- a/packages/amplication-data-service-generator/src/models.ts +++ b/packages/amplication-data-service-generator/src/models.ts @@ -902,7 +902,7 @@ export enum EnumPendingChangeAction { Update = "Update", } -export enum EnumPendingChangeResourceType { +export enum EnumPendingChangeOriginType { Block = "Block", Entity = "Entity", } @@ -1333,13 +1333,13 @@ export type MutationUpdateWorkspaceArgs = { export type PendingChange = { __typename?: "PendingChange"; action: EnumPendingChangeAction; - resource: PendingChangeResource; - resourceId: Scalars["String"]; - resourceType: EnumPendingChangeResourceType; + origin: PendingChangeOrigin; + originId: Scalars["String"]; + originType: EnumPendingChangeOriginType; versionNumber: Scalars["Int"]; }; -export type PendingChangeResource = Block | Entity; +export type PendingChangeOrigin = Block | Entity; export type PendingChangesDiscardInput = { resource: WhereParentIdInput; diff --git a/packages/amplication-data-service-generator/src/server/static/package-lock.json b/packages/amplication-data-service-generator/src/server/static/package-lock.json index d2238d35d7..7ccc60b4e2 100644 --- a/packages/amplication-data-service-generator/src/server/static/package-lock.json +++ b/packages/amplication-data-service-generator/src/server/static/package-lock.json @@ -1,6 +1,6 @@ { "name": "server-template", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-data-service-generator/src/server/static/package.json b/packages/amplication-data-service-generator/src/server/static/package.json index bee0cf2ac1..40dea815a1 100644 --- a/packages/amplication-data-service-generator/src/server/static/package.json +++ b/packages/amplication-data-service-generator/src/server/static/package.json @@ -1,6 +1,6 @@ { "name": "server-template", - "version": "0.14.10", + "version": "0.14.11", "private": true, "scripts": { "start": "nest start", diff --git a/packages/amplication-data-service-generator/src/server/static/src/auth/auth.service.spec.ts b/packages/amplication-data-service-generator/src/server/static/src/auth/auth.service.spec.ts index b12a409e97..e5e3cef96c 100644 --- a/packages/amplication-data-service-generator/src/server/static/src/auth/auth.service.spec.ts +++ b/packages/amplication-data-service-generator/src/server/static/src/auth/auth.service.spec.ts @@ -1,9 +1,6 @@ import { Test, TestingModule } from "@nestjs/testing"; // @ts-ignore // eslint-disable-next-line -import { User } from "src/user/base/User"; -// @ts-ignore -// eslint-disable-next-line import { UserService } from "../user/user.service"; import { AuthService } from "./auth.service"; import { Credentials } from "./Credentials"; diff --git a/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-custom-path.spec.ts.snap b/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-custom-path.spec.ts.snap index 7b11bd5434..e4f1ef231c 100644 --- a/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-custom-path.spec.ts.snap +++ b/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-custom-path.spec.ts.snap @@ -3338,9 +3338,6 @@ export class AuthResolver { "test/src/auth/auth.service.spec.ts": "import { Test, TestingModule } from \\"@nestjs/testing\\"; // @ts-ignore // eslint-disable-next-line -import { User } from \\"src/user/base/User\\"; -// @ts-ignore -// eslint-disable-next-line import { UserService } from \\"../user/user.service\\"; import { AuthService } from \\"./auth.service\\"; import { Credentials } from \\"./Credentials\\"; diff --git a/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-without-graphql.spec.ts.snap b/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-without-graphql.spec.ts.snap index fe54dd6c92..1757e4cdf7 100644 --- a/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-without-graphql.spec.ts.snap +++ b/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-without-graphql.spec.ts.snap @@ -3338,9 +3338,6 @@ export class AuthResolver { "server/src/auth/auth.service.spec.ts": "import { Test, TestingModule } from \\"@nestjs/testing\\"; // @ts-ignore // eslint-disable-next-line -import { User } from \\"src/user/base/User\\"; -// @ts-ignore -// eslint-disable-next-line import { UserService } from \\"../user/user.service\\"; import { AuthService } from \\"./auth.service\\"; import { Credentials } from \\"./Credentials\\"; diff --git a/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-without-restApi.spec.ts.snap b/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-without-restApi.spec.ts.snap index dc9ac5a0f1..809aa03b66 100644 --- a/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-without-restApi.spec.ts.snap +++ b/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service-without-restApi.spec.ts.snap @@ -3338,9 +3338,6 @@ export class AuthResolver { "server/src/auth/auth.service.spec.ts": "import { Test, TestingModule } from \\"@nestjs/testing\\"; // @ts-ignore // eslint-disable-next-line -import { User } from \\"src/user/base/User\\"; -// @ts-ignore -// eslint-disable-next-line import { UserService } from \\"../user/user.service\\"; import { AuthService } from \\"./auth.service\\"; import { Credentials } from \\"./Credentials\\"; diff --git a/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service.spec.ts.snap b/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service.spec.ts.snap index 961a669b8b..edf1c49479 100644 --- a/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service.spec.ts.snap +++ b/packages/amplication-data-service-generator/src/tests/__snapshots__/create-data-service.spec.ts.snap @@ -3338,9 +3338,6 @@ export class AuthResolver { "server/src/auth/auth.service.spec.ts": "import { Test, TestingModule } from \\"@nestjs/testing\\"; // @ts-ignore // eslint-disable-next-line -import { User } from \\"src/user/base/User\\"; -// @ts-ignore -// eslint-disable-next-line import { UserService } from \\"../user/user.service\\"; import { AuthService } from \\"./auth.service\\"; import { Credentials } from \\"./Credentials\\"; diff --git a/packages/amplication-data-service-generator/src/version.ts b/packages/amplication-data-service-generator/src/version.ts index fd60eef019..8f09dd577f 100644 --- a/packages/amplication-data-service-generator/src/version.ts +++ b/packages/amplication-data-service-generator/src/version.ts @@ -1 +1 @@ -export const version = "0.14.10"; +export const version = "0.14.11"; diff --git a/packages/amplication-design-system/package-lock.json b/packages/amplication-design-system/package-lock.json index c216665beb..8139df0eef 100644 --- a/packages/amplication-design-system/package-lock.json +++ b/packages/amplication-design-system/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/design-system", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-design-system/package.json b/packages/amplication-design-system/package.json index de1db8f19e..4de4165240 100644 --- a/packages/amplication-design-system/package.json +++ b/packages/amplication-design-system/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/design-system", - "version": "0.14.10", + "version": "0.14.11", "main": "dist/index.js", "scripts": { "check-format": "prettier --check .", diff --git a/packages/amplication-git-pull-request-service/package-lock.json b/packages/amplication-git-pull-request-service/package-lock.json index c6aabfce4e..99c251dc7c 100644 --- a/packages/amplication-git-pull-request-service/package-lock.json +++ b/packages/amplication-git-pull-request-service/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/git-pull-request-service", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-git-pull-request-service/package.json b/packages/amplication-git-pull-request-service/package.json index 6428d8c47f..a60fded0f0 100644 --- a/packages/amplication-git-pull-request-service/package.json +++ b/packages/amplication-git-pull-request-service/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/git-pull-request-service", - "version": "0.14.10", + "version": "0.14.11", "private": true, "scripts": { "prebuild": "rimraf dist", @@ -18,9 +18,9 @@ "postinstall": "npm run build" }, "dependencies": { - "@amplication/git-service": "^0.14.10", - "@amplication/kafka": "^0.14.10", - "@amplication/nest-logger-module": "^0.14.10", + "@amplication/git-service": "^0.14.11", + "@amplication/kafka": "^0.14.11", + "@amplication/nest-logger-module": "^0.14.11", "@nestjs/common": "8.4.3", "@nestjs/config": "1.1.5", "@nestjs/core": "8.2.3", diff --git a/packages/amplication-git-pull-request-service/src/models.ts b/packages/amplication-git-pull-request-service/src/models.ts index afde3279e2..753f18482c 100644 --- a/packages/amplication-git-pull-request-service/src/models.ts +++ b/packages/amplication-git-pull-request-service/src/models.ts @@ -900,7 +900,7 @@ export enum EnumPendingChangeAction { Update = 'Update', } -export enum EnumPendingChangeResourceType { +export enum EnumPendingChangeOriginType { Block = 'Block', Entity = 'Entity', } @@ -1331,13 +1331,13 @@ export type MutationUpdateWorkspaceArgs = { export type PendingChange = { __typename?: 'PendingChange'; action: EnumPendingChangeAction; - resource: PendingChangeResource; - resourceId: Scalars['String']; - resourceType: EnumPendingChangeResourceType; + origin: PendingChangeOrigin; + originId: Scalars['String']; + originType: EnumPendingChangeOriginType; versionNumber: Scalars['Int']; }; -export type PendingChangeResource = Block | Entity; +export type PendingChangeOrigin = Block | Entity; export type PendingChangesDiscardInput = { resource: WhereParentIdInput; diff --git a/packages/amplication-git-pull-request-service/tsconfig.json b/packages/amplication-git-pull-request-service/tsconfig.json index eb57bb08cd..d92b21a2ba 100644 --- a/packages/amplication-git-pull-request-service/tsconfig.json +++ b/packages/amplication-git-pull-request-service/tsconfig.json @@ -15,7 +15,8 @@ "strictBindCallApply": true, "strictFunctionTypes": true, "noImplicitUseStrict": true, - "resolveJsonModule": true + "resolveJsonModule": true, + "skipLibCheck": true }, "exclude": ["node_modules", "dist", "builds"] } diff --git a/packages/amplication-git-service/package-lock.json b/packages/amplication-git-service/package-lock.json index a0cf1a3ad9..a701f4940e 100644 --- a/packages/amplication-git-service/package-lock.json +++ b/packages/amplication-git-service/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/git-service", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-git-service/package.json b/packages/amplication-git-service/package.json index a9e20e7465..e3ef1e4564 100644 --- a/packages/amplication-git-service/package.json +++ b/packages/amplication-git-service/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/git-service", - "version": "0.14.10", + "version": "0.14.11", "main": "dist/index.js", "scripts": { "prebuild": "rimraf dist", diff --git a/packages/amplication-kafka/package-lock.json b/packages/amplication-kafka/package-lock.json index a6519eeb29..ece2351add 100644 --- a/packages/amplication-kafka/package-lock.json +++ b/packages/amplication-kafka/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/kafka", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-kafka/package.json b/packages/amplication-kafka/package.json index 7da43898a3..e3fbe5103b 100644 --- a/packages/amplication-kafka/package.json +++ b/packages/amplication-kafka/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/kafka", - "version": "0.14.10", + "version": "0.14.11", "description": "", "main": "./lib/index.js", "scripts": { diff --git a/packages/amplication-kafka/tsconfig.json b/packages/amplication-kafka/tsconfig.json index 02eef6dd5b..abe0e87ce9 100644 --- a/packages/amplication-kafka/tsconfig.json +++ b/packages/amplication-kafka/tsconfig.json @@ -10,7 +10,8 @@ "outDir": "./lib", "esModuleInterop": true, "allowSyntheticDefaultImports": true, - "strict": true + "strict": true, + "skipLibCheck": true }, "exclude": ["node_modules", "lib"], "include": ["src"] diff --git a/packages/amplication-nest-logger-module/package-lock.json b/packages/amplication-nest-logger-module/package-lock.json index 1be9be4745..781b47b5dd 100644 --- a/packages/amplication-nest-logger-module/package-lock.json +++ b/packages/amplication-nest-logger-module/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/nest-logger-module", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { @@ -9,7 +9,7 @@ "version": "0.14.10", "hasInstallScript": true, "dependencies": { - "@nestjs/common": "9.0.7", + "@nestjs/common": "8.4.3", "nest-winston": "1.7.0", "reflect-metadata": "0.1.13", "winston": "3.8.1", @@ -948,12 +948,13 @@ } }, "node_modules/@nestjs/common": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.0.7.tgz", - "integrity": "sha512-XGAUYdS3deTeB/yGVIQLkXRggOdOYe5CeaDXmSaBrozElTUmv+S2x8tpE+0olIFmBjn/NFFV4UhxxKGTUqFH/w==", + "version": "8.4.3", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.4.3.tgz", + "integrity": "sha512-QIhWykB7IPOwHQB/K9wMwmQKibQ5dhg9dt8ySOoD36uFFwN3RJQelzMFF9Rtu7hrMPk6pSyismEUKQ8BZMUD9w==", "dependencies": { + "axios": "0.26.1", "iterare": "1.2.1", - "tslib": "2.4.0", + "tslib": "2.3.1", "uuid": "8.3.2" }, "funding": { @@ -979,6 +980,11 @@ } } }, + "node_modules/@nestjs/common/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, "node_modules/@sinclair/typebox": { "version": "0.24.20", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.20.tgz", @@ -1200,6 +1206,14 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, + "node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, "node_modules/babel-jest": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", @@ -1780,6 +1794,25 @@ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3627,7 +3660,8 @@ "node_modules/tslib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "peer": true }, "node_modules/type-detect": { "version": "4.0.8", @@ -4587,13 +4621,21 @@ } }, "@nestjs/common": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.0.7.tgz", - "integrity": "sha512-XGAUYdS3deTeB/yGVIQLkXRggOdOYe5CeaDXmSaBrozElTUmv+S2x8tpE+0olIFmBjn/NFFV4UhxxKGTUqFH/w==", + "version": "8.4.3", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.4.3.tgz", + "integrity": "sha512-QIhWykB7IPOwHQB/K9wMwmQKibQ5dhg9dt8ySOoD36uFFwN3RJQelzMFF9Rtu7hrMPk6pSyismEUKQ8BZMUD9w==", "requires": { + "axios": "0.26.1", "iterare": "1.2.1", - "tslib": "2.4.0", + "tslib": "2.3.1", "uuid": "8.3.2" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "@sinclair/typebox": { @@ -4798,6 +4840,14 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, + "axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "requires": { + "follow-redirects": "^1.14.8" + } + }, "babel-jest": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", @@ -5248,6 +5298,11 @@ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -6614,7 +6669,8 @@ "tslib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "peer": true }, "type-detect": { "version": "4.0.8", diff --git a/packages/amplication-nest-logger-module/package.json b/packages/amplication-nest-logger-module/package.json index ef11c4e34e..7a1c458158 100644 --- a/packages/amplication-nest-logger-module/package.json +++ b/packages/amplication-nest-logger-module/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/nest-logger-module", - "version": "0.14.10", + "version": "0.14.11", "description": "", "main": "./dist/index.js", "scripts": { @@ -40,7 +40,7 @@ } }, "dependencies": { - "@nestjs/common": "9.0.7", + "@nestjs/common": "8.4.3", "nest-winston": "1.7.0", "reflect-metadata": "0.1.13", "winston": "3.8.1", diff --git a/packages/amplication-prisma-db/package-lock.json b/packages/amplication-prisma-db/package-lock.json index 21a011cb70..6c5feb7447 100644 --- a/packages/amplication-prisma-db/package-lock.json +++ b/packages/amplication-prisma-db/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/prisma-db", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-prisma-db/package.json b/packages/amplication-prisma-db/package.json index 48d1e5de6b..1b4c501866 100644 --- a/packages/amplication-prisma-db/package.json +++ b/packages/amplication-prisma-db/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/prisma-db", - "version": "0.14.10", + "version": "0.14.11", "description": "", "author": "", "private": true, diff --git a/packages/amplication-scheduler/package-lock.json b/packages/amplication-scheduler/package-lock.json index 4976131e8e..f36587c2b5 100644 --- a/packages/amplication-scheduler/package-lock.json +++ b/packages/amplication-scheduler/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/scheduler", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-scheduler/package.json b/packages/amplication-scheduler/package.json index 2a91061905..c06b6663fb 100644 --- a/packages/amplication-scheduler/package.json +++ b/packages/amplication-scheduler/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/scheduler", - "version": "0.14.10", + "version": "0.14.11", "description": "Simple HTTP cron job scheduler", "main": "./dist/index.js", "bin": { diff --git a/packages/amplication-server/package-lock.json b/packages/amplication-server/package-lock.json index 1a09d59073..66ab1e22bf 100644 --- a/packages/amplication-server/package-lock.json +++ b/packages/amplication-server/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/server", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-server/package.json b/packages/amplication-server/package.json index 271e4340ef..0dc901ed5d 100644 --- a/packages/amplication-server/package.json +++ b/packages/amplication-server/package.json @@ -1,6 +1,6 @@ { "name": "@amplication/server", - "version": "0.14.10", + "version": "0.14.11", "private": true, "scripts": { "prebuild": "rimraf dist", @@ -24,11 +24,11 @@ "migrate:up": "cd ../amplication-prisma-db && npm run migrate:up" }, "dependencies": { - "@amplication/code-gen-types": "^0.14.10", - "@amplication/data-service-generator": "^0.14.10", - "@amplication/git-service": "^0.14.10", - "@amplication/kafka": "^0.14.10", - "@amplication/prisma-db": "^0.14.10", + "@amplication/code-gen-types": "^0.14.11", + "@amplication/data-service-generator": "^0.14.11", + "@amplication/git-service": "^0.14.11", + "@amplication/kafka": "^0.14.11", + "@amplication/prisma-db": "^0.14.11", "@apollo/gateway": "0.42.3", "@codebrew/nestjs-storage": "0.1.6", "@extra-set/difference": "2.2.3", diff --git a/packages/amplication-server/src/core/action/action.resolver.ts b/packages/amplication-server/src/core/action/action.resolver.ts index b3fed61eeb..4f3f45b5c7 100644 --- a/packages/amplication-server/src/core/action/action.resolver.ts +++ b/packages/amplication-server/src/core/action/action.resolver.ts @@ -7,7 +7,7 @@ import { ActionStep } from './dto/ActionStep'; import { FindOneActionArgs } from './dto/FindOneActionArgs'; import { ActionService } from './action.service'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; @Resolver(() => Action) @UseFilters(GqlResolverExceptionsFilter) @@ -16,7 +16,7 @@ export class ActionResolver { constructor(private readonly service: ActionService) {} @Query(() => Action) - @AuthorizeContext(AuthorizableResourceParameter.ActionId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ActionId, 'where.id') async action(@Args() args: FindOneActionArgs): Promise { return this.service.findOne(args); } diff --git a/packages/amplication-server/src/core/auth/auth.resolver.ts b/packages/amplication-server/src/core/auth/auth.resolver.ts index 93b80fe39b..e1bcfa89e7 100644 --- a/packages/amplication-server/src/core/auth/auth.resolver.ts +++ b/packages/amplication-server/src/core/auth/auth.resolver.ts @@ -18,7 +18,7 @@ import { UserEntity } from 'src/decorators/user.decorator'; import { GqlAuthGuard } from 'src/guards/gql-auth.guard'; import { FindOneArgs } from 'src/dto'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; @Resolver(() => Auth) @UseFilters(GqlResolverExceptionsFilter) export class AuthResolver { @@ -80,7 +80,7 @@ export class AuthResolver { @Mutation(() => ApiToken) @UseGuards(GqlAuthGuard) - @AuthorizeContext(AuthorizableResourceParameter.ApiTokenId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ApiTokenId, 'where.id') async deleteApiToken( @UserEntity() user: User, @Args() args: FindOneArgs diff --git a/packages/amplication-server/src/core/block/block.resolver.ts b/packages/amplication-server/src/core/block/block.resolver.ts index 9a973f2280..d32433c903 100644 --- a/packages/amplication-server/src/core/block/block.resolver.ts +++ b/packages/amplication-server/src/core/block/block.resolver.ts @@ -2,7 +2,7 @@ import { UseFilters, UseGuards } from '@nestjs/common'; import { Args, Parent, Query, ResolveField, Resolver } from '@nestjs/graphql'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; import { FindOneArgs } from 'src/dto'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { GqlResolverExceptionsFilter } from 'src/filters/GqlResolverExceptions.filter'; import { GqlAuthGuard } from 'src/guards/gql-auth.guard'; import { Block, BlockVersion, User } from 'src/models'; @@ -24,10 +24,7 @@ export class BlockResolver { @Query(() => [Block], { nullable: false }) - @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, - 'where.resource.id' - ) + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.resource.id') async blocks(@Args() args: FindManyBlockArgs): Promise { return this.blockService.findMany(args); } @@ -35,7 +32,7 @@ export class BlockResolver { @Query(() => Block, { nullable: false }) - @AuthorizeContext(AuthorizableResourceParameter.BlockId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.BlockId, 'where.id') async block(@Args() args: FindOneArgs): Promise { return this.blockService.block(args); } diff --git a/packages/amplication-server/src/core/block/block.service.ts b/packages/amplication-server/src/core/block/block.service.ts index da12cff559..f36142828d 100644 --- a/packages/amplication-server/src/core/block/block.service.ts +++ b/packages/amplication-server/src/core/block/block.service.ts @@ -32,7 +32,7 @@ import { import { FindOneArgs } from 'src/dto'; import { EnumBlockType } from 'src/enums/EnumBlockType'; import { - EnumPendingChangeResourceType, + EnumPendingChangeOriginType, EnumPendingChangeAction, PendingChange } from '../resource/dto'; @@ -49,14 +49,14 @@ const NON_COMPARABLE_PROPERTIES = [ export type BlockPendingChange = { /** The id of the changed block */ - resourceId: string; + originId: string; /** The type of change */ action: EnumPendingChangeAction; - resourceType: EnumPendingChangeResourceType.Block; + originType: EnumPendingChangeOriginType.Block; /** The block version number */ versionNumber: number; /** The block */ - resource: Block; + origin: Block; }; @Injectable() @@ -617,11 +617,11 @@ export class BlockService { } return { - resourceId: block.id, + originId: block.id, action: action, - resourceType: EnumPendingChangeResourceType.Block, + originType: EnumPendingChangeOriginType.Block, versionNumber: lastVersion.versionNumber + 1, - resource: block + origin: block }; }); } @@ -659,11 +659,11 @@ export class BlockService { } return { - resourceId: block.id, + originId: block.id, action: action, - resourceType: EnumPendingChangeResourceType.Block, + originType: EnumPendingChangeOriginType.Block, versionNumber: changedVersion.versionNumber, - resource: block + origin: block }; }); } diff --git a/packages/amplication-server/src/core/block/blockType.resolver.ts b/packages/amplication-server/src/core/block/blockType.resolver.ts index 887b49e936..8e2d88d072 100644 --- a/packages/amplication-server/src/core/block/blockType.resolver.ts +++ b/packages/amplication-server/src/core/block/blockType.resolver.ts @@ -2,7 +2,7 @@ import { Args, Mutation, Query, Resolver } from '@nestjs/graphql'; import { IBlock, User } from 'src/models'; import { FindOneArgs } from 'src/dto'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { BlockTypeService } from './blockType.service'; import { FindManyBlockArgs, @@ -38,7 +38,7 @@ export function BlockTypeResolver< name: classRef.name, nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.BlockId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.BlockId, 'where.id') async findOne(@Args() args: FindOneArgs): Promise { return this.service.findOne(args); } @@ -48,7 +48,7 @@ export function BlockTypeResolver< nullable: false }) @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, + AuthorizableOriginParameter.ResourceId, 'where.resource.id' ) async findMany( @@ -62,7 +62,7 @@ export function BlockTypeResolver< nullable: false }) @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, + AuthorizableOriginParameter.ResourceId, 'data.resource.connect.id' ) async [createName]( @@ -76,7 +76,7 @@ export function BlockTypeResolver< name: updateName, nullable: false }) - @AuthorizeContext(AuthorizableResourceParameter.BlockId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.BlockId, 'where.id') async [updateName]( @Args({ type: () => updateArgsRef }) args: UpdateArgs, @UserEntity() user: User diff --git a/packages/amplication-server/src/core/build/build.resolver.ts b/packages/amplication-server/src/core/build/build.resolver.ts index 0ffdef5524..58f41a5285 100644 --- a/packages/amplication-server/src/core/build/build.resolver.ts +++ b/packages/amplication-server/src/core/build/build.resolver.ts @@ -15,9 +15,9 @@ import { FindOneBuildArgs } from './dto/FindOneBuildArgs'; import { FindManyBuildArgs } from './dto/FindManyBuildArgs'; import { BuildService } from './build.service'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { InjectContextValue } from 'src/decorators/injectContextValue.decorator'; -import { InjectableResourceParameter } from 'src/enums/InjectableResourceParameter'; +import { InjectableOriginParameter } from 'src/enums/InjectableOriginParameter'; import { Commit, User } from 'src/models'; import { UserService } from '../user/user.service'; import { Action } from '../action/dto'; @@ -37,16 +37,13 @@ export class BuildResolver { ) {} @Query(() => [Build]) - @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, - 'where.resource.id' - ) + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.resource.id') async builds(@Args() args: FindManyBuildArgs): Promise { return this.service.findMany(args); } @Query(() => Build) - @AuthorizeContext(AuthorizableResourceParameter.BuildId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.BuildId, 'where.id') async build(@Args() args: FindOneBuildArgs): Promise { return this.service.findOne(args); } @@ -78,11 +75,11 @@ export class BuildResolver { @Mutation(() => Build) @InjectContextValue( - InjectableResourceParameter.UserId, + InjectableOriginParameter.UserId, 'data.createdBy.connect.id' ) @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, + AuthorizableOriginParameter.ResourceId, 'data.resource.connect.id' ) async createBuild(@Args() args: CreateBuildArgs): Promise { diff --git a/packages/amplication-server/src/core/commit/commit.resolver.ts b/packages/amplication-server/src/core/commit/commit.resolver.ts index 8175e68e47..47697e5261 100644 --- a/packages/amplication-server/src/core/commit/commit.resolver.ts +++ b/packages/amplication-server/src/core/commit/commit.resolver.ts @@ -3,7 +3,7 @@ import { Args, Parent, Query, ResolveField, Resolver } from '@nestjs/graphql'; import { FindManyCommitArgs } from './dto/FindManyCommitArgs'; import { FindOneCommitArgs } from './dto/FindOneCommitArgs'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { GqlResolverExceptionsFilter } from 'src/filters/GqlResolverExceptions.filter'; import { GqlAuthGuard } from 'src/guards/gql-auth.guard'; import { Commit, User } from 'src/models'; @@ -36,7 +36,7 @@ export class CommitResolver { @Query(() => Commit, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.CommitId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.CommitId, 'where.id') async commit(@Args() args: FindOneCommitArgs): Promise { return this.commitService.findOne(args); } @@ -44,10 +44,7 @@ export class CommitResolver { @Query(() => [Commit], { nullable: true }) - @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, - 'where.resource.id' - ) + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.resource.id') async commits(@Args() args: FindManyCommitArgs): Promise { return this.commitService.findMany(args); } diff --git a/packages/amplication-server/src/core/entity/entity.resolver.ts b/packages/amplication-server/src/core/entity/entity.resolver.ts index c15076f66f..d931d1e0e0 100644 --- a/packages/amplication-server/src/core/entity/entity.resolver.ts +++ b/packages/amplication-server/src/core/entity/entity.resolver.ts @@ -19,8 +19,8 @@ import { FindOneArgs } from 'src/dto'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; import { InjectContextValue } from 'src/decorators/injectContextValue.decorator'; import { UserEntity } from 'src/decorators/user.decorator'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; -import { InjectableResourceParameter } from 'src/enums/InjectableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; +import { InjectableOriginParameter } from 'src/enums/InjectableOriginParameter'; import { GqlAuthGuard } from 'src/guards/gql-auth.guard'; import { GqlResolverExceptionsFilter } from 'src/filters/GqlResolverExceptions.filter'; import { UserService } from '../user/user.service'; @@ -57,7 +57,7 @@ export class EntityResolver { @Query(() => Entity, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.EntityId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.EntityId, 'where.id') async entity(@Args() args: FindOneEntityArgs): Promise { return this.entityService.entity(args); } @@ -65,10 +65,7 @@ export class EntityResolver { @Query(() => [Entity], { nullable: false }) - @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, - 'where.resource.id' - ) + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.resource.id') async entities(@Args() args: FindManyEntityArgs): Promise { return this.entityService.entities(args); } @@ -77,7 +74,7 @@ export class EntityResolver { nullable: false }) @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, + AuthorizableOriginParameter.ResourceId, 'data.resource.connect.id' ) async createOneEntity( @@ -90,7 +87,7 @@ export class EntityResolver { @Mutation(() => Entity, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.EntityId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.EntityId, 'where.id') async deleteEntity( @UserEntity() user: User, @Args() args: DeleteOneEntityArgs @@ -101,7 +98,7 @@ export class EntityResolver { @Mutation(() => Entity, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.EntityId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.EntityId, 'where.id') async updateEntity( @UserEntity() user: User, @Args() args: UpdateOneEntityArgs @@ -112,8 +109,8 @@ export class EntityResolver { @Mutation(() => Entity, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.EntityId, 'where.id') - @InjectContextValue(InjectableResourceParameter.UserId, 'userId') + @AuthorizeContext(AuthorizableOriginParameter.EntityId, 'where.id') + @InjectContextValue(InjectableOriginParameter.UserId, 'userId') async lockEntity( @UserEntity() user: User, @Args() args: LockEntityArgs @@ -164,7 +161,7 @@ export class EntityResolver { } @Mutation(() => EntityPermission, { nullable: false }) - @AuthorizeContext(AuthorizableResourceParameter.EntityId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.EntityId, 'where.id') async updateEntityPermission( @UserEntity() user: User, @Args() args: UpdateEntityPermissionArgs @@ -174,7 +171,7 @@ export class EntityResolver { @Mutation(() => EntityPermission, { nullable: false }) @AuthorizeContext( - AuthorizableResourceParameter.EntityId, + AuthorizableOriginParameter.EntityId, 'data.entity.connect.id' ) async updateEntityPermissionRoles( @@ -186,7 +183,7 @@ export class EntityResolver { @Mutation(() => EntityPermissionField, { nullable: false }) @AuthorizeContext( - AuthorizableResourceParameter.EntityId, + AuthorizableOriginParameter.EntityId, 'data.entity.connect.id' ) async addEntityPermissionField( @@ -197,7 +194,7 @@ export class EntityResolver { } @Mutation(() => EntityPermissionField, { nullable: false }) - @AuthorizeContext(AuthorizableResourceParameter.EntityId, 'where.entityId') + @AuthorizeContext(AuthorizableOriginParameter.EntityId, 'where.entityId') async deleteEntityPermissionField( @UserEntity() user: User, @Args() args: DeleteEntityPermissionFieldArgs @@ -207,7 +204,7 @@ export class EntityResolver { @Mutation(() => EntityPermissionField, { nullable: false }) @AuthorizeContext( - AuthorizableResourceParameter.EntityPermissionFieldId, + AuthorizableOriginParameter.EntityPermissionFieldId, 'data.permissionField.connect.id' ) async updateEntityPermissionFieldRoles( @@ -219,7 +216,7 @@ export class EntityResolver { @Mutation(() => EntityField, { nullable: false }) @AuthorizeContext( - AuthorizableResourceParameter.EntityId, + AuthorizableOriginParameter.EntityId, 'data.entity.connect.id' ) async createEntityField( @@ -231,7 +228,7 @@ export class EntityResolver { @Mutation(() => EntityField, { nullable: false }) @AuthorizeContext( - AuthorizableResourceParameter.EntityId, + AuthorizableOriginParameter.EntityId, 'data.entity.connect.id' ) async createEntityFieldByDisplayName( @@ -242,7 +239,7 @@ export class EntityResolver { } @Mutation(() => EntityField, { nullable: false }) - @AuthorizeContext(AuthorizableResourceParameter.EntityFieldId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.EntityFieldId, 'where.id') async deleteEntityField( @UserEntity() user: User, @Args() args: FindOneArgs @@ -251,7 +248,7 @@ export class EntityResolver { } @Mutation(() => EntityField, { nullable: false }) - @AuthorizeContext(AuthorizableResourceParameter.EntityFieldId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.EntityFieldId, 'where.id') async updateEntityField( @UserEntity() user: User, @Args() args: UpdateOneEntityFieldArgs @@ -260,7 +257,7 @@ export class EntityResolver { } @Mutation(() => EntityField, { nullable: false }) - @AuthorizeContext(AuthorizableResourceParameter.EntityFieldId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.EntityFieldId, 'where.id') async createDefaultRelatedField( @UserEntity() user: User, @Args() args: CreateDefaultRelatedFieldArgs diff --git a/packages/amplication-server/src/core/entity/entity.service.spec.ts b/packages/amplication-server/src/core/entity/entity.service.spec.ts index 2735746ede..6248ecc5d3 100644 --- a/packages/amplication-server/src/core/entity/entity.service.spec.ts +++ b/packages/amplication-server/src/core/entity/entity.service.spec.ts @@ -26,7 +26,7 @@ import { DiffModule } from 'src/services/diff.module'; import { prepareDeletedItemName } from 'src/util/softDelete'; import { EnumPendingChangeAction, - EnumPendingChangeResourceType + EnumPendingChangeOriginType } from '../resource/dto'; import { DiffService } from 'src/services/diff.service'; import { isReservedName } from './reservedNames'; @@ -107,11 +107,11 @@ const EXAMPLE_CURRENT_ENTITY_VERSION: EntityVersion = { }; const EXAMPLE_ENTITY_PENDING_CHANGE_CREATE: EntityPendingChange = { - resourceId: EXAMPLE_ENTITY.id, + originId: EXAMPLE_ENTITY.id, action: EnumPendingChangeAction.Create, - resourceType: EnumPendingChangeResourceType.Entity, + originType: EnumPendingChangeOriginType.Entity, versionNumber: 1, - resource: EXAMPLE_ENTITY + origin: EXAMPLE_ENTITY }; const EXAMPLE_DELETED_ENTITY = { ...EXAMPLE_ENTITY, @@ -119,18 +119,18 @@ const EXAMPLE_DELETED_ENTITY = { deletedAt: new Date() }; const EXAMPLE_ENTITY_PENDING_CHANGE_DELETE: EntityPendingChange = { - resourceId: EXAMPLE_ENTITY.id, + originId: EXAMPLE_ENTITY.id, action: EnumPendingChangeAction.Delete, - resourceType: EnumPendingChangeResourceType.Entity, + originType: EnumPendingChangeOriginType.Entity, versionNumber: 1, - resource: EXAMPLE_DELETED_ENTITY + origin: EXAMPLE_DELETED_ENTITY }; const EXAMPLE_ENTITY_PENDING_CHANGE_UPDATE: EntityPendingChange = { - resourceId: EXAMPLE_ENTITY.id, + originId: EXAMPLE_ENTITY.id, action: EnumPendingChangeAction.Update, - resourceType: EnumPendingChangeResourceType.Entity, + originType: EnumPendingChangeOriginType.Entity, versionNumber: 1, - resource: EXAMPLE_ENTITY + origin: EXAMPLE_ENTITY }; const EXAMPLE_LAST_ENTITY_VERSION: EntityVersion = { diff --git a/packages/amplication-server/src/core/entity/entity.service.ts b/packages/amplication-server/src/core/entity/entity.service.ts index 8dde7b671d..1d8cde711e 100644 --- a/packages/amplication-server/src/core/entity/entity.service.ts +++ b/packages/amplication-server/src/core/entity/entity.service.ts @@ -45,7 +45,7 @@ import { } from 'src/util/softDelete'; import { - EnumPendingChangeResourceType, + EnumPendingChangeOriginType, EnumPendingChangeAction, PendingChange } from '../resource/dto'; @@ -104,14 +104,14 @@ export type BulkEntityData = Omit< export type EntityPendingChange = { /** The id of the changed entity */ - resourceId: string; + originId: string; /** The type of change */ action: EnumPendingChangeAction; - resourceType: EnumPendingChangeResourceType.Entity; + originType: EnumPendingChangeOriginType.Entity; /** The entity version number */ versionNumber: number; /** The entity */ - resource: Entity; + origin: Entity; }; /** @@ -495,11 +495,11 @@ export class EntityService { } return { - resourceId: entity.id, + originId: entity.id, action: action, - resourceType: EnumPendingChangeResourceType.Entity, + originType: EnumPendingChangeOriginType.Entity, versionNumber: lastVersion.versionNumber + 1, - resource: entity + origin: entity }; }); } @@ -539,11 +539,11 @@ export class EntityService { } return { - resourceId: entity.id, + originId: entity.id, action: action, - resourceType: EnumPendingChangeResourceType.Entity, + originType: EnumPendingChangeOriginType.Entity, versionNumber: changedVersion.versionNumber, - resource: entity + origin: entity }; }); } diff --git a/packages/amplication-server/src/core/git/git.resolver.ts b/packages/amplication-server/src/core/git/git.resolver.ts index 6ecc3276d0..6a5f78f133 100644 --- a/packages/amplication-server/src/core/git/git.resolver.ts +++ b/packages/amplication-server/src/core/git/git.resolver.ts @@ -3,8 +3,8 @@ import { Args, Mutation, Query } from '@nestjs/graphql'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; import { InjectContextValue } from 'src/decorators/injectContextValue.decorator'; import { FindOneArgs } from 'src/dto'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; -import { InjectableResourceParameter } from 'src/enums/InjectableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; +import { InjectableOriginParameter } from 'src/enums/InjectableOriginParameter'; import { Resource } from 'src/models/Resource'; import { GitOrganization } from 'src/models/GitOrganization'; import { GqlResolverExceptionsFilter } from '../../filters/GqlResolverExceptions.filter'; @@ -27,7 +27,7 @@ export class GitResolver { constructor(private readonly gitService: GitProviderService) {} @Mutation(() => Resource) @AuthorizeContext( - AuthorizableResourceParameter.GitOrganizationId, + AuthorizableOriginParameter.GitOrganizationId, 'data.gitOrganizationId' ) async createGitRepository( @@ -37,14 +37,14 @@ export class GitResolver { } @Query(() => GitOrganization) - @AuthorizeContext(AuthorizableResourceParameter.GitOrganizationId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.GitOrganizationId, 'where.id') async gitOrganization(@Args() args: FindOneArgs): Promise { return this.gitService.getGitOrganization(args); } @Mutation(() => Resource) @AuthorizeContext( - AuthorizableResourceParameter.GitOrganizationId, + AuthorizableOriginParameter.GitOrganizationId, 'data.gitOrganizationId' ) async connectResourceGitRepository( @@ -54,10 +54,7 @@ export class GitResolver { } @Mutation(() => GitOrganization) - @InjectContextValue( - InjectableResourceParameter.WorkspaceId, - 'data.workspaceId' - ) + @InjectContextValue(InjectableOriginParameter.WorkspaceId, 'data.workspaceId') async createOrganization( @Args() args: CreateGitOrganizationArgs ): Promise { @@ -66,7 +63,7 @@ export class GitResolver { @Mutation(() => Resource) @AuthorizeContext( - AuthorizableResourceParameter.GitRepositoryId, + AuthorizableOriginParameter.GitRepositoryId, 'gitRepositoryId' ) async deleteGitRepository( @@ -77,7 +74,7 @@ export class GitResolver { @Mutation(() => Boolean) @AuthorizeContext( - AuthorizableResourceParameter.GitOrganizationId, + AuthorizableOriginParameter.GitOrganizationId, 'gitOrganizationId' ) async deleteGitOrganization( @@ -87,10 +84,7 @@ export class GitResolver { } @Mutation(() => AuthorizeResourceWithGitResult) - @InjectContextValue( - InjectableResourceParameter.WorkspaceId, - 'data.workspaceId' - ) + @InjectContextValue(InjectableOriginParameter.WorkspaceId, 'data.workspaceId') async getGitResourceInstallationUrl( @Args() args: GetGitInstallationUrlArgs ): Promise { @@ -101,7 +95,7 @@ export class GitResolver { @Query(() => [RemoteGitRepository]) @AuthorizeContext( - AuthorizableResourceParameter.GitOrganizationId, + AuthorizableOriginParameter.GitOrganizationId, 'where.gitOrganizationId' ) async remoteGitRepositories( @@ -112,7 +106,7 @@ export class GitResolver { @Query(() => [GitOrganization]) @InjectContextValue( - InjectableResourceParameter.WorkspaceId, + InjectableOriginParameter.WorkspaceId, 'where.workspaceId' ) async gitOrganizations( diff --git a/packages/amplication-server/src/core/permissions/permissions.service.spec.ts b/packages/amplication-server/src/core/permissions/permissions.service.spec.ts index 48c2afed94..8db8c2f48b 100644 --- a/packages/amplication-server/src/core/permissions/permissions.service.spec.ts +++ b/packages/amplication-server/src/core/permissions/permissions.service.spec.ts @@ -2,10 +2,10 @@ import { Test, TestingModule } from '@nestjs/testing'; import { PermissionsService } from './permissions.service'; import { PrismaService } from '@amplication/prisma-db'; import { User, Workspace } from 'src/models'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; -const UNEXPECTED_RESOURCE_TYPE = -1; -const UNEXPECTED_RESOURCE_ID = 'unexpectedResourceId'; +const UNEXPECTED_ORIGIN_TYPE = -1; +const UNEXPECTED_ORIGIN_ID = 'unexpectedOriginId'; const EXAMPLE_WORKSPACE_ID = 'exampleWorkspaceId'; const EXAMPLE_WORKSPACE_NAME = 'exampleWorkspaceName'; @@ -70,31 +70,27 @@ describe('PermissionsService', () => { expect(service).toBeDefined(); }); - it('should return true when resourceType is an authorized workspace id', async () => { + it('should return true when originType is an authorized workspace id', async () => { const args = { user: EXAMPLE_USER, - resourceType: AuthorizableResourceParameter.WorkspaceId, - resourceId: EXAMPLE_WORKSPACE_ID + originType: AuthorizableOriginParameter.WorkspaceId, + originId: EXAMPLE_WORKSPACE_ID }; expect( - await service.validateAccess( - args.user, - args.resourceType, - args.resourceId - ) + await service.validateAccess(args.user, args.originType, args.originId) ).toEqual(true); }); - it('should return true when resourceType is an authorized resource id', async () => { + it('should return true when originType is an authorized resource id', async () => { const args = { user: EXAMPLE_USER, - resourceType: AuthorizableResourceParameter.ResourceId, - resourceId: EXAMPLE_RESOURCE_ID + originType: AuthorizableOriginParameter.ResourceId, + originId: EXAMPLE_RESOURCE_ID }; const countArgs = { where: { deletedAt: null, - id: args.resourceId, + id: args.originId, project: { workspace: { id: EXAMPLE_WORKSPACE_ID @@ -103,25 +99,21 @@ describe('PermissionsService', () => { } }; expect( - await service.validateAccess( - args.user, - args.resourceType, - args.resourceId - ) + await service.validateAccess(args.user, args.originType, args.originId) ).toEqual(true); expect(prismaResourceCountMock).toBeCalledTimes(1); expect(prismaResourceCountMock).toBeCalledWith(countArgs); }); - it('should return true if resourceType is an authorized instance of AuthorizableResourceParameter', async () => { + it('should return true if originType is an authorized instance of AuthorizableOriginParameter', async () => { const args = { user: EXAMPLE_USER, - resourceType: AuthorizableResourceParameter.ResourceRoleId, - resourceId: EXAMPLE_RESOURCE_ROLE_ID + originType: AuthorizableOriginParameter.ResourceRoleId, + originId: EXAMPLE_RESOURCE_ROLE_ID }; const countArgs = { where: { - id: args.resourceId, + id: args.originId, resource: { deletedAt: null, project: { @@ -133,11 +125,7 @@ describe('PermissionsService', () => { } }; expect( - await service.validateAccess( - args.user, - args.resourceType, - args.resourceId - ) + await service.validateAccess(args.user, args.originType, args.originId) ).toEqual(true); expect(prismaResourceRoleCountMock).toBeCalledTimes(1); expect(prismaResourceRoleCountMock).toBeCalledWith(countArgs); @@ -146,11 +134,11 @@ describe('PermissionsService', () => { it('should throw an error', async () => { const args = { user: EXAMPLE_USER, - resourceType: UNEXPECTED_RESOURCE_TYPE, - resourceId: UNEXPECTED_RESOURCE_ID + originType: UNEXPECTED_ORIGIN_TYPE, + originId: UNEXPECTED_ORIGIN_ID }; await expect( - service.validateAccess(args.user, args.resourceType, args.resourceId) - ).rejects.toThrow(`Unexpected resource type ${args.resourceType}`); + service.validateAccess(args.user, args.originType, args.originId) + ).rejects.toThrow(`Unexpected origin type ${args.originType}`); }); }); diff --git a/packages/amplication-server/src/core/permissions/permissions.service.ts b/packages/amplication-server/src/core/permissions/permissions.service.ts index ab5551270a..e2e64af08a 100644 --- a/packages/amplication-server/src/core/permissions/permissions.service.ts +++ b/packages/amplication-server/src/core/permissions/permissions.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { PrismaService } from '@amplication/prisma-db'; import { User } from 'src/models'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; @Injectable() export class PermissionsService { @@ -9,14 +9,14 @@ export class PermissionsService { async validateAccess( user: User, - resourceType: AuthorizableResourceParameter, - resourceId: string + originType: AuthorizableOriginParameter, + originId: string ): Promise { const { workspace } = user; const checkByResourceParameters = { where: { - id: resourceId, + id: originId, resource: { deletedAt: null, project: { @@ -28,14 +28,14 @@ export class PermissionsService { } }; - if (resourceType === AuthorizableResourceParameter.WorkspaceId) { - return resourceId === workspace.id; + if (originType === AuthorizableOriginParameter.WorkspaceId) { + return originId === workspace.id; } - if (resourceType === AuthorizableResourceParameter.GitOrganizationId) { + if (originType === AuthorizableOriginParameter.GitOrganizationId) { const matching = await this.prisma.gitOrganization.count({ where: { - id: resourceId, + id: originId, workspace: { id: workspace.id } @@ -44,20 +44,20 @@ export class PermissionsService { return matching === 1; } - if (resourceType === AuthorizableResourceParameter.GitRepositoryId) { + if (originType === AuthorizableOriginParameter.GitRepositoryId) { const matching = await this.prisma.gitRepository.count({ where: { - id: resourceId + id: originId } }); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.ProjectId) { + if (originType === AuthorizableOriginParameter.ProjectId) { const matching = await this.prisma.project.count({ where: { deletedAt: null, - id: resourceId, + id: originId, workspace: { id: workspace.id } @@ -66,11 +66,11 @@ export class PermissionsService { return matching === 1; } - if (resourceType === AuthorizableResourceParameter.ResourceId) { + if (originType === AuthorizableOriginParameter.ResourceId) { const matching = await this.prisma.resource.count({ where: { deletedAt: null, - id: resourceId, + id: originId, project: { workspace: { id: workspace.id @@ -81,10 +81,10 @@ export class PermissionsService { return matching === 1; } - if (resourceType === AuthorizableResourceParameter.InvitationId) { + if (originType === AuthorizableOriginParameter.InvitationId) { const matching = await this.prisma.invitation.count({ where: { - id: resourceId, + id: originId, workspace: { id: workspace.id } @@ -92,22 +92,22 @@ export class PermissionsService { }); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.ApiTokenId) { + if (originType === AuthorizableOriginParameter.ApiTokenId) { const matching = await this.prisma.apiToken.count({ where: { - id: resourceId, + id: originId, userId: user.id } }); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.ActionId) { + if (originType === AuthorizableOriginParameter.ActionId) { const matching = await this.prisma.action.count({ where: { // eslint-disable-next-line @typescript-eslint/naming-convention OR: [ { - id: resourceId, + id: originId, deployments: { some: { build: { @@ -122,7 +122,7 @@ export class PermissionsService { } }, { - id: resourceId, + id: originId, builds: { some: { resource: { @@ -139,10 +139,10 @@ export class PermissionsService { }); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.DeploymentId) { + if (originType === AuthorizableOriginParameter.DeploymentId) { const matching = await this.prisma.deployment.count({ where: { - id: resourceId, + id: originId, environment: { resource: { deletedAt: null, @@ -155,10 +155,10 @@ export class PermissionsService { }); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.EntityFieldId) { + if (originType === AuthorizableOriginParameter.EntityFieldId) { const matching = await this.prisma.entityField.count({ where: { - id: resourceId, + id: originId, entityVersion: { entity: { resource: { @@ -173,12 +173,10 @@ export class PermissionsService { }); return matching === 1; } - if ( - resourceType === AuthorizableResourceParameter.EntityPermissionFieldId - ) { + if (originType === AuthorizableOriginParameter.EntityPermissionFieldId) { const matching = await this.prisma.entityPermissionField.count({ where: { - id: resourceId, + id: originId, field: { entityVersion: { entity: { @@ -195,39 +193,39 @@ export class PermissionsService { }); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.EntityId) { + if (originType === AuthorizableOriginParameter.EntityId) { const matching = await this.prisma.entity.count( checkByResourceParameters ); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.BlockId) { + if (originType === AuthorizableOriginParameter.BlockId) { const matching = await this.prisma.block.count(checkByResourceParameters); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.BuildId) { + if (originType === AuthorizableOriginParameter.BuildId) { const matching = await this.prisma.build.count(checkByResourceParameters); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.ResourceRoleId) { + if (originType === AuthorizableOriginParameter.ResourceRoleId) { const matching = await this.prisma.resourceRole.count( checkByResourceParameters ); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.EnvironmentId) { + if (originType === AuthorizableOriginParameter.EnvironmentId) { const matching = await this.prisma.environment.count( checkByResourceParameters ); return matching === 1; } - if (resourceType === AuthorizableResourceParameter.CommitId) { + if (originType === AuthorizableOriginParameter.CommitId) { const matching = await this.prisma.commit.count( checkByResourceParameters ); return matching === 1; } - throw new Error(`Unexpected resource type ${resourceType}`); + throw new Error(`Unexpected origin type ${originType}`); } } diff --git a/packages/amplication-server/src/core/project/project.resolver.ts b/packages/amplication-server/src/core/project/project.resolver.ts index ca37190d9c..3237c080a9 100644 --- a/packages/amplication-server/src/core/project/project.resolver.ts +++ b/packages/amplication-server/src/core/project/project.resolver.ts @@ -12,13 +12,13 @@ import { ProjectCreateArgs } from './dto/ProjectCreateArgs'; import { ProjectFindManyArgs } from './dto/ProjectFindManyArgs'; import { ProjectService } from './project.service'; import { InjectContextValue } from 'src/decorators/injectContextValue.decorator'; -import { InjectableResourceParameter } from 'src/enums/InjectableResourceParameter'; +import { InjectableOriginParameter } from 'src/enums/InjectableOriginParameter'; import { Roles } from 'src/decorators/roles.decorator'; import { UseFilters, UseGuards } from '@nestjs/common'; import { GqlResolverExceptionsFilter } from 'src/filters/GqlResolverExceptions.filter'; import { GqlAuthGuard } from 'src/guards/gql-auth.guard'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { UserEntity } from 'src/decorators/user.decorator'; import { ResourceService } from '../resource/resource.service'; @@ -34,7 +34,7 @@ export class ProjectResolver { @Query(() => [Project], { nullable: false }) @Roles('ORGANIZATION_ADMIN') @InjectContextValue( - InjectableResourceParameter.WorkspaceId, + InjectableOriginParameter.WorkspaceId, 'where.workspace.id' ) async projects(@Args() args: ProjectFindManyArgs): Promise { @@ -43,7 +43,7 @@ export class ProjectResolver { @Query(() => Project, { nullable: true }) @Roles('ORGANIZATION_ADMIN') - @AuthorizeContext(AuthorizableResourceParameter.ProjectId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ProjectId, 'where.id') async project(@Args() args: FindOneArgs): Promise { return this.projectService.findProject(args); } @@ -51,7 +51,7 @@ export class ProjectResolver { @Mutation(() => Project, { nullable: false }) @Roles('ORGANIZATION_ADMIN') @InjectContextValue( - InjectableResourceParameter.WorkspaceId, + InjectableOriginParameter.WorkspaceId, 'data.workspace.connect.id' ) async createProject( diff --git a/packages/amplication-server/src/core/projectConfigurationSettings/projectConfigurationSettings.resolver.ts b/packages/amplication-server/src/core/projectConfigurationSettings/projectConfigurationSettings.resolver.ts index 247303f059..445b3c3182 100644 --- a/packages/amplication-server/src/core/projectConfigurationSettings/projectConfigurationSettings.resolver.ts +++ b/packages/amplication-server/src/core/projectConfigurationSettings/projectConfigurationSettings.resolver.ts @@ -3,7 +3,7 @@ import { Args, Mutation, Resolver, Query } from '@nestjs/graphql'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; import { UserEntity } from 'src/decorators/user.decorator'; import { FindOneArgs } from 'src/dto'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { GqlAuthGuard } from 'src/guards/gql-auth.guard'; import { User } from 'src/models'; import { ProjectConfigurationSettings } from './dto/ProjectConfigurationSettings'; @@ -16,7 +16,7 @@ export class ProjectConfigurationSettingsResolver { constructor(private readonly service: ProjectConfigurationSettingsService) {} @Mutation(() => ProjectConfigurationSettings, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.ResourceId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.id') async updateProjectConfigurationSettings( @Args() args: UpdateProjectConfigurationSettingsArgs, @UserEntity() user: User @@ -25,7 +25,7 @@ export class ProjectConfigurationSettingsResolver { } @Query(() => ProjectConfigurationSettings, { nullable: false }) - @AuthorizeContext(AuthorizableResourceParameter.ResourceId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.id') async projectConfigurationSettings( @Args() args: FindOneArgs ): Promise { diff --git a/packages/amplication-server/src/core/resource/dto/EnumPendingChangeOriginType.ts b/packages/amplication-server/src/core/resource/dto/EnumPendingChangeOriginType.ts new file mode 100644 index 0000000000..d6cdd977a3 --- /dev/null +++ b/packages/amplication-server/src/core/resource/dto/EnumPendingChangeOriginType.ts @@ -0,0 +1,10 @@ +import { registerEnumType } from '@nestjs/graphql'; + +export enum EnumPendingChangeOriginType { + Entity = 'Entity', + Block = 'Block' +} + +registerEnumType(EnumPendingChangeOriginType, { + name: 'EnumPendingChangeOriginType' +}); diff --git a/packages/amplication-server/src/core/resource/dto/EnumPendingChangeResourceType.ts b/packages/amplication-server/src/core/resource/dto/EnumPendingChangeResourceType.ts deleted file mode 100644 index 17ed615d4b..0000000000 --- a/packages/amplication-server/src/core/resource/dto/EnumPendingChangeResourceType.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { registerEnumType } from '@nestjs/graphql'; - -export enum EnumPendingChangeResourceType { - Entity = 'Entity', - Block = 'Block' -} - -registerEnumType(EnumPendingChangeResourceType, { - name: 'EnumPendingChangeResourceType' -}); diff --git a/packages/amplication-server/src/core/resource/dto/PendingChange.ts b/packages/amplication-server/src/core/resource/dto/PendingChange.ts index 3552462788..05a0233a8c 100644 --- a/packages/amplication-server/src/core/resource/dto/PendingChange.ts +++ b/packages/amplication-server/src/core/resource/dto/PendingChange.ts @@ -2,8 +2,8 @@ import { Field, Int, ObjectType } from '@nestjs/graphql'; import { EnumPendingChangeAction } from './EnumPendingChangeAction'; import { Entity } from 'src/models/Entity'; // eslint-disable-line import/no-cycle import { Block } from 'src/models/Block'; // eslint-disable-line import/no-cycle -import { EnumPendingChangeResourceType } from './EnumPendingChangeResourceType'; -import { PendingChangeResource } from './PendingChangeResource'; // eslint-disable-line import/no-cycle +import { EnumPendingChangeOriginType } from './EnumPendingChangeOriginType'; +import { PendingChangeOrigin } from './PendingChangeOrigin'; // eslint-disable-line import/no-cycle @ObjectType({ isAbstract: true @@ -14,20 +14,20 @@ export class PendingChange { }) action: EnumPendingChangeAction; - @Field(() => EnumPendingChangeResourceType, { + @Field(() => EnumPendingChangeOriginType, { nullable: false }) - resourceType: EnumPendingChangeResourceType; + originType: EnumPendingChangeOriginType; @Field(() => String, { nullable: false }) - resourceId!: string; + originId!: string; - @Field(() => PendingChangeResource, { + @Field(() => PendingChangeOrigin, { nullable: false }) - resource: Entity | Block; + origin: Entity | Block; @Field(() => Int, { nullable: false diff --git a/packages/amplication-server/src/core/resource/dto/PendingChangeOrigin.ts b/packages/amplication-server/src/core/resource/dto/PendingChangeOrigin.ts new file mode 100644 index 0000000000..620adaa947 --- /dev/null +++ b/packages/amplication-server/src/core/resource/dto/PendingChangeOrigin.ts @@ -0,0 +1,15 @@ +import { createUnionType } from '@nestjs/graphql'; +import { Entity } from 'src/models/Entity'; // eslint-disable-line import/no-cycle +import { Block } from 'src/models/Block'; // eslint-disable-line import/no-cycle + +// eslint-disable-next-line @typescript-eslint/naming-convention +export const PendingChangeOrigin = createUnionType({ + name: 'PendingChangeOrigin', + types: () => [Entity, Block], + resolveType(value) { + if (value.blockType) { + return Block; + } + return Entity; + } +}); diff --git a/packages/amplication-server/src/core/resource/dto/PendingChangeResource.ts b/packages/amplication-server/src/core/resource/dto/PendingChangeResource.ts index 7341affa33..620adaa947 100644 --- a/packages/amplication-server/src/core/resource/dto/PendingChangeResource.ts +++ b/packages/amplication-server/src/core/resource/dto/PendingChangeResource.ts @@ -3,8 +3,8 @@ import { Entity } from 'src/models/Entity'; // eslint-disable-line import/no-cyc import { Block } from 'src/models/Block'; // eslint-disable-line import/no-cycle // eslint-disable-next-line @typescript-eslint/naming-convention -export const PendingChangeResource = createUnionType({ - name: 'PendingChangeResource', +export const PendingChangeOrigin = createUnionType({ + name: 'PendingChangeOrigin', types: () => [Entity, Block], resolveType(value) { if (value.blockType) { diff --git a/packages/amplication-server/src/core/resource/dto/index.ts b/packages/amplication-server/src/core/resource/dto/index.ts index 5efd49adc1..9e201991fd 100644 --- a/packages/amplication-server/src/core/resource/dto/index.ts +++ b/packages/amplication-server/src/core/resource/dto/index.ts @@ -12,7 +12,7 @@ export { DiscardPendingChangesArgs } from './DiscardPendingChangesArgs'; export { CommitCreateInput } from './CommitCreateInput'; export { FindPendingChangesArgs } from './FindPendingChangesArgs'; export { PendingChange } from './PendingChange'; -export { EnumPendingChangeResourceType } from './EnumPendingChangeResourceType'; +export { EnumPendingChangeOriginType } from './EnumPendingChangeOriginType'; export { EnumPendingChangeAction } from './EnumPendingChangeAction'; export { FindManyCommitsArgs } from './FindManyCommitsArgs'; export { ResourceCreateWithEntitiesInput } from './ResourceCreateWithEntitiesInput'; diff --git a/packages/amplication-server/src/core/resource/resource.resolver.spec.ts b/packages/amplication-server/src/core/resource/resource.resolver.spec.ts index 91b2aab8c8..9da924296f 100644 --- a/packages/amplication-server/src/core/resource/resource.resolver.spec.ts +++ b/packages/amplication-server/src/core/resource/resource.resolver.spec.ts @@ -24,7 +24,7 @@ import { Commit } from 'src/models/Commit'; import { PendingChange } from './dto/PendingChange'; import { EnumPendingChangeAction, - EnumPendingChangeResourceType + EnumPendingChangeOriginType } from '@amplication/code-gen-types/dist/models'; import { mockGqlAuthGuardCanActivate } from '../../../test/gql-auth-mock'; import { UserService } from '../user/user.service'; @@ -49,7 +49,7 @@ const EXAMPLE_MESSAGE = 'exampleMessage'; const EXAMPLE_ENTITY_ID = 'exampleEntityId'; -const EXAMPLE_BLOCK_RESOURCE_ID = 'exampleResourceId'; +const EXAMPLE_ORIGIN_ID = 'exampleOriginId'; const EXAMPLE_VERSION_NUMBER = 1; const EXAMPLE_PROJECT_ID = 'exampleProjectId'; @@ -104,9 +104,9 @@ const EXAMPLE_RESOURCE: Resource = { const EXAMPLE_PENDING_CHANGE: PendingChange = { action: EnumPendingChangeAction.Create, - resourceType: EnumPendingChangeResourceType.Entity, - resourceId: EXAMPLE_BLOCK_RESOURCE_ID, - resource: EXAMPLE_ENTITY, + originType: EnumPendingChangeOriginType.Entity, + originId: EXAMPLE_ORIGIN_ID, + origin: EXAMPLE_ENTITY, versionNumber: EXAMPLE_VERSION_NUMBER }; @@ -341,10 +341,10 @@ const PENDING_CHANGE_QUERY = gql` query($resourceId: String!) { pendingChanges(where: { resource: { id: $resourceId } }) { action - resourceType - resourceId + originType + originId versionNumber - resource { + origin { ... on Entity { id createdAt @@ -764,7 +764,7 @@ describe('ResourceResolver', () => { pendingChanges: [ { ...EXAMPLE_PENDING_CHANGE, - resource: { + origin: { ...EXAMPLE_ENTITY, createdAt: EXAMPLE_ENTITY.createdAt.toISOString(), updatedAt: EXAMPLE_ENTITY.updatedAt.toISOString() diff --git a/packages/amplication-server/src/core/resource/resource.resolver.ts b/packages/amplication-server/src/core/resource/resource.resolver.ts index ed9f862a61..289f235992 100644 --- a/packages/amplication-server/src/core/resource/resource.resolver.ts +++ b/packages/amplication-server/src/core/resource/resource.resolver.ts @@ -12,8 +12,8 @@ import { InjectContextValue } from 'src/decorators/injectContextValue.decorator' import { Roles } from 'src/decorators/roles.decorator'; import { UserEntity } from 'src/decorators/user.decorator'; import { FindOneArgs } from 'src/dto'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; -import { InjectableResourceParameter } from 'src/enums/InjectableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; +import { InjectableOriginParameter } from 'src/enums/InjectableOriginParameter'; import { GqlResolverExceptionsFilter } from 'src/filters/GqlResolverExceptions.filter'; import { GqlAuthGuard } from 'src/guards/gql-auth.guard'; import { Resource, Commit, Entity, User, Project } from 'src/models'; @@ -49,7 +49,7 @@ export class ResourceResolver { @Query(() => Resource, { nullable: true }) @Roles('ORGANIZATION_ADMIN') - @AuthorizeContext(AuthorizableResourceParameter.ResourceId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.id') async resource(@Args() args: FindOneArgs): Promise { return this.resourceService.resource(args); } @@ -58,7 +58,7 @@ export class ResourceResolver { nullable: false }) @Roles('ORGANIZATION_ADMIN') - @AuthorizeContext(AuthorizableResourceParameter.ProjectId, 'where.project.id') + @AuthorizeContext(AuthorizableOriginParameter.ProjectId, 'where.project.id') async resources(@Args() args: FindManyResourceArgs): Promise { return this.resourceService.resources(args); } @@ -95,7 +95,7 @@ export class ResourceResolver { @Mutation(() => Resource, { nullable: false }) @Roles('ORGANIZATION_ADMIN') @AuthorizeContext( - AuthorizableResourceParameter.ProjectId, + AuthorizableOriginParameter.ProjectId, 'data.project.connect.id' ) async createResource( @@ -108,7 +108,7 @@ export class ResourceResolver { @Mutation(() => Resource, { nullable: false }) @Roles('ORGANIZATION_ADMIN') @AuthorizeContext( - AuthorizableResourceParameter.ProjectId, + AuthorizableOriginParameter.ProjectId, 'data.resource.project.connect.id' ) async createResourceWithEntities( @@ -121,7 +121,7 @@ export class ResourceResolver { @Mutation(() => Resource, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.ResourceId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.id') async deleteResource(@Args() args: FindOneArgs): Promise { return this.resourceService.deleteResource(args); } @@ -129,7 +129,7 @@ export class ResourceResolver { @Mutation(() => Resource, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.ResourceId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.id') async updateResource( @Args() args: UpdateOneResourceArgs ): Promise { @@ -140,13 +140,10 @@ export class ResourceResolver { nullable: true }) @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, + AuthorizableOriginParameter.ResourceId, 'data.resource.connect.id' ) - @InjectContextValue( - InjectableResourceParameter.UserId, - 'data.user.connect.id' - ) + @InjectContextValue(InjectableOriginParameter.UserId, 'data.user.connect.id') async commit(@Args() args: CreateCommitArgs): Promise { return this.resourceService.commit(args); } @@ -155,13 +152,10 @@ export class ResourceResolver { nullable: true }) @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, + AuthorizableOriginParameter.ResourceId, 'data.resource.connect.id' ) - @InjectContextValue( - InjectableResourceParameter.UserId, - 'data.user.connect.id' - ) + @InjectContextValue(InjectableOriginParameter.UserId, 'data.user.connect.id') async discardPendingChanges( @Args() args: DiscardPendingChangesArgs ): Promise { @@ -171,10 +165,7 @@ export class ResourceResolver { @Query(() => [PendingChange], { nullable: false }) - @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, - 'where.resource.id' - ) + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.resource.id') async pendingChanges( @Args() args: FindPendingChangesArgs, @UserEntity() user: User diff --git a/packages/amplication-server/src/core/resource/resource.service.spec.ts b/packages/amplication-server/src/core/resource/resource.service.spec.ts index 9cd1150896..db47f1406a 100644 --- a/packages/amplication-server/src/core/resource/resource.service.spec.ts +++ b/packages/amplication-server/src/core/resource/resource.service.spec.ts @@ -37,7 +37,7 @@ import { } from '../environment/environment.service'; import { EnumPendingChangeAction, - EnumPendingChangeResourceType, + EnumPendingChangeOriginType, ResourceCreateInput } from './dto'; import { PendingChange } from './dto/PendingChange'; @@ -158,19 +158,19 @@ const EXAMPLE_ENTITY_FIELD: EntityField = { }; const EXAMPLE_CHANGED_ENTITY: PendingChange = { - resourceId: EXAMPLE_ENTITY_ID, + originId: EXAMPLE_ENTITY_ID, action: EnumPendingChangeAction.Create, - resourceType: EnumPendingChangeResourceType.Entity, + originType: EnumPendingChangeOriginType.Entity, versionNumber: 1, - resource: EXAMPLE_ENTITY + origin: EXAMPLE_ENTITY }; const EXAMPLE_CHANGED_BLOCK: PendingChange = { - resourceId: EXAMPLE_BLOCK_ID, + originId: EXAMPLE_BLOCK_ID, action: EnumPendingChangeAction.Create, - resourceType: EnumPendingChangeResourceType.Block, + originType: EnumPendingChangeOriginType.Block, versionNumber: 1, - resource: EXAMPLE_BLOCK + origin: EXAMPLE_BLOCK }; const EXAMPLE_ENTITY_VERSION_ID = 'exampleEntityVersionId'; diff --git a/packages/amplication-server/src/core/resource/resource.service.ts b/packages/amplication-server/src/core/resource/resource.service.ts index 46240028ee..1d5532f17c 100644 --- a/packages/amplication-server/src/core/resource/resource.service.ts +++ b/packages/amplication-server/src/core/resource/resource.service.ts @@ -375,7 +375,7 @@ export class ResourceService { } /** - * Gets all the resources changed since the last commit in the resource + * Gets all the origins changed since the last commit in the resource */ async getPendingChanges( args: FindPendingChangesArgs, @@ -458,15 +458,13 @@ export class ResourceService { }, entity: { connect: { - id: change.resourceId + id: change.originId } } } }); - const releasePromise = this.entityService.releaseLock( - change.resourceId - ); + const releasePromise = this.entityService.releaseLock(change.originId); return [ versionPromise.then(() => null), @@ -486,13 +484,13 @@ export class ResourceService { }, block: { connect: { - id: change.resourceId + id: change.originId } } } }); - const releasePromise = this.blockService.releaseLock(change.resourceId); + const releasePromise = this.blockService.releaseLock(change.originId); return [ versionPromise.then(() => null), @@ -569,13 +567,10 @@ export class ResourceService { } const entityPromises = changedEntities.map(change => { - return this.entityService.discardPendingChanges( - change.resourceId, - userId - ); + return this.entityService.discardPendingChanges(change.originId, userId); }); const blockPromises = changedBlocks.map(change => { - return this.blockService.discardPendingChanges(change.resourceId, userId); + return this.blockService.discardPendingChanges(change.originId, userId); }); await Promise.all(blockPromises); diff --git a/packages/amplication-server/src/core/resourceRole/resourceRole.resolver.ts b/packages/amplication-server/src/core/resourceRole/resourceRole.resolver.ts index 6ebb4d752b..2bb42d445c 100644 --- a/packages/amplication-server/src/core/resourceRole/resourceRole.resolver.ts +++ b/packages/amplication-server/src/core/resourceRole/resourceRole.resolver.ts @@ -1,7 +1,7 @@ import { Args, Mutation, Query, Resolver } from '@nestjs/graphql'; import { UseFilters } from '@nestjs/common'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { CreateResourceRoleArgs, FindManyResourceRoleArgs, @@ -20,7 +20,7 @@ export class ResourceRoleResolver { @Query(() => ResourceRole, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.BlockId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.BlockId, 'where.id') async resourceRole( @Args() args: FindOneResourceRoleArgs ): Promise { @@ -30,10 +30,7 @@ export class ResourceRoleResolver { @Query(() => [ResourceRole], { nullable: false }) - @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, - 'where.resource.id' - ) + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.resource.id') async resourceRoles( @Args() args: FindManyResourceRoleArgs ): Promise { @@ -44,7 +41,7 @@ export class ResourceRoleResolver { nullable: false }) @AuthorizeContext( - AuthorizableResourceParameter.ResourceId, + AuthorizableOriginParameter.ResourceId, 'data.resource.connect.id' ) async createResourceRole( @@ -56,7 +53,7 @@ export class ResourceRoleResolver { @Mutation(() => ResourceRole, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.ResourceRoleId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ResourceRoleId, 'where.id') async deleteResourceRole( @Args() args: DeleteResourceRoleArgs ): Promise { @@ -66,7 +63,7 @@ export class ResourceRoleResolver { @Mutation(() => ResourceRole, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.ResourceRoleId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ResourceRoleId, 'where.id') async updateResourceRole( @Args() args: UpdateOneResourceRoleArgs ): Promise { diff --git a/packages/amplication-server/src/core/serviceSettings/serviceSettings.resolver.ts b/packages/amplication-server/src/core/serviceSettings/serviceSettings.resolver.ts index bcf8cb520d..f25472975b 100644 --- a/packages/amplication-server/src/core/serviceSettings/serviceSettings.resolver.ts +++ b/packages/amplication-server/src/core/serviceSettings/serviceSettings.resolver.ts @@ -2,7 +2,7 @@ import { Args, Mutation, Query, Resolver } from '@nestjs/graphql'; import { ServiceSettingsService } from './serviceSettings.service'; import { ServiceSettings, UpdateServiceSettingsArgs } from './dto'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { FindOneArgs } from 'src/dto'; import { UserEntity } from 'src/decorators/user.decorator'; import { User } from 'src/models'; @@ -17,7 +17,7 @@ export class ServiceSettingsResolver { @Mutation(() => ServiceSettings, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.ResourceId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.id') async updateServiceSettings( @Args() args: UpdateServiceSettingsArgs, @UserEntity() user: User @@ -28,7 +28,7 @@ export class ServiceSettingsResolver { @Query(() => ServiceSettings, { nullable: false }) - @AuthorizeContext(AuthorizableResourceParameter.ResourceId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.ResourceId, 'where.id') async serviceSettings( @Args() args: FindOneArgs, @UserEntity() user: User diff --git a/packages/amplication-server/src/core/workspace/workspace.resolver.ts b/packages/amplication-server/src/core/workspace/workspace.resolver.ts index 783f83ed0f..ca17b189ae 100644 --- a/packages/amplication-server/src/core/workspace/workspace.resolver.ts +++ b/packages/amplication-server/src/core/workspace/workspace.resolver.ts @@ -24,7 +24,7 @@ import { UseFilters, UseGuards } from '@nestjs/common'; import { UserEntity } from 'src/decorators/user.decorator'; import { GqlAuthGuard } from 'src/guards/gql-auth.guard'; import { WorkspaceService } from './workspace.service'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { AuthorizeContext } from 'src/decorators/authorizeContext.decorator'; import { GitOrganization } from 'src/models/GitOrganization'; import { Subscription } from '../subscription/dto/Subscription'; @@ -42,7 +42,7 @@ export class WorkspaceResolver { @Query(() => Workspace, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.WorkspaceId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.WorkspaceId, 'where.id') async workspace(@Args() args: FindOneArgs): Promise { return this.workspaceService.getWorkspace(args); } @@ -66,7 +66,7 @@ export class WorkspaceResolver { @Mutation(() => Workspace, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.WorkspaceId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.WorkspaceId, 'where.id') async deleteWorkspace(@Args() args: FindOneArgs): Promise { return this.workspaceService.deleteWorkspace(args); } @@ -74,7 +74,7 @@ export class WorkspaceResolver { @Mutation(() => Workspace, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.WorkspaceId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.WorkspaceId, 'where.id') async updateWorkspace( @Args() args: UpdateOneWorkspaceArgs ): Promise { @@ -104,7 +104,7 @@ export class WorkspaceResolver { @Mutation(() => Invitation, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.InvitationId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.InvitationId, 'where.id') async revokeInvitation( @Args() args: RevokeInvitationArgs ): Promise { @@ -114,7 +114,7 @@ export class WorkspaceResolver { @Mutation(() => Invitation, { nullable: true }) - @AuthorizeContext(AuthorizableResourceParameter.InvitationId, 'where.id') + @AuthorizeContext(AuthorizableOriginParameter.InvitationId, 'where.id') async resendInvitation( @Args() args: ResendInvitationArgs ): Promise { diff --git a/packages/amplication-server/src/decorators/authorizeContext.decorator.ts b/packages/amplication-server/src/decorators/authorizeContext.decorator.ts index 06a0a1ce90..5eefd5154c 100644 --- a/packages/amplication-server/src/decorators/authorizeContext.decorator.ts +++ b/packages/amplication-server/src/decorators/authorizeContext.decorator.ts @@ -3,7 +3,7 @@ */ import { SetMetadata } from '@nestjs/common'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { AUTHORIZE_CONTEXT, AuthorizeContextParameters @@ -19,7 +19,7 @@ import { */ // eslint-disable-next-line @typescript-eslint/naming-convention export const AuthorizeContext = ( - parameterType: AuthorizableResourceParameter, + parameterType: AuthorizableOriginParameter, parameterPath: string ) => SetMetadata(AUTHORIZE_CONTEXT, { diff --git a/packages/amplication-server/src/decorators/injectContextValue.decorator.ts b/packages/amplication-server/src/decorators/injectContextValue.decorator.ts index 128e2e6aa0..2c418c3753 100644 --- a/packages/amplication-server/src/decorators/injectContextValue.decorator.ts +++ b/packages/amplication-server/src/decorators/injectContextValue.decorator.ts @@ -1,5 +1,5 @@ import { SetMetadata } from '@nestjs/common'; -import { InjectableResourceParameter } from 'src/enums/InjectableResourceParameter'; +import { InjectableOriginParameter } from 'src/enums/InjectableOriginParameter'; import { INJECT_CONTEXT_VALUE, InjectContextValueParameters @@ -12,7 +12,7 @@ import { */ // eslint-disable-next-line @typescript-eslint/naming-convention export const InjectContextValue = ( - parameterType: InjectableResourceParameter, + parameterType: InjectableOriginParameter, parameterPath: string ) => SetMetadata(INJECT_CONTEXT_VALUE, { diff --git a/packages/amplication-server/src/enums/AuthorizableResourceParameter.ts b/packages/amplication-server/src/enums/AuthorizableOriginParameter.ts similarity index 91% rename from packages/amplication-server/src/enums/AuthorizableResourceParameter.ts rename to packages/amplication-server/src/enums/AuthorizableOriginParameter.ts index cbf9da4ad4..12ddaadc78 100644 --- a/packages/amplication-server/src/enums/AuthorizableResourceParameter.ts +++ b/packages/amplication-server/src/enums/AuthorizableOriginParameter.ts @@ -4,7 +4,7 @@ * Each parameter defined in the enum needs a definition of how to authorize it * in the { @link PermissionService } */ -export enum AuthorizableResourceParameter { +export enum AuthorizableOriginParameter { WorkspaceId, ResourceId, EntityId, diff --git a/packages/amplication-server/src/enums/InjectableOriginParameter.ts b/packages/amplication-server/src/enums/InjectableOriginParameter.ts new file mode 100644 index 0000000000..1b5970b392 --- /dev/null +++ b/packages/amplication-server/src/enums/InjectableOriginParameter.ts @@ -0,0 +1,4 @@ +export enum InjectableOriginParameter { + UserId, + WorkspaceId +} diff --git a/packages/amplication-server/src/enums/InjectableResourceParameter.ts b/packages/amplication-server/src/enums/InjectableResourceParameter.ts deleted file mode 100644 index eb44b55039..0000000000 --- a/packages/amplication-server/src/enums/InjectableResourceParameter.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum InjectableResourceParameter { - UserId, - WorkspaceId -} diff --git a/packages/amplication-server/src/guards/gql-auth.guard.spec.ts b/packages/amplication-server/src/guards/gql-auth.guard.spec.ts index 21e0ea51c2..8ca2ded95d 100644 --- a/packages/amplication-server/src/guards/gql-auth.guard.spec.ts +++ b/packages/amplication-server/src/guards/gql-auth.guard.spec.ts @@ -6,7 +6,7 @@ import { AUTHORIZE_CONTEXT, AuthorizeContextParameters } from './gql-auth.guard'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; import { User } from 'src/models/User'; import { UserRole } from 'src/models/UserRole'; import { Workspace } from 'src/models/Workspace'; @@ -16,7 +16,7 @@ const EXAMPLE_ROLE = 'Example Role'; const EXAMPLE_ROLES: string[] = [EXAMPLE_ROLE]; const EXAMPLE_AUTHORIZE_CONTEXT_PARAMETERS: AuthorizeContextParameters = { parameterPath: 'where.workspace.id', - parameterType: AuthorizableResourceParameter.WorkspaceId + parameterType: AuthorizableOriginParameter.WorkspaceId }; const EXAMPLE_HANDLER = () => null; @@ -36,10 +36,10 @@ const EXAMPLE_FIND_REQUEST_ARGS = { } }; -const validateAccessMock = jest.fn((user, resourceType, resourceId) => { +const validateAccessMock = jest.fn((user, originType, originId) => { return ( - resourceType === AuthorizableResourceParameter.WorkspaceId && - resourceId === EXAMPLE_WORKSPACE_ID + originType === AuthorizableOriginParameter.WorkspaceId && + originId === EXAMPLE_WORKSPACE_ID ); }); diff --git a/packages/amplication-server/src/guards/gql-auth.guard.ts b/packages/amplication-server/src/guards/gql-auth.guard.ts index a8ae9f0fa3..3a11e7deef 100644 --- a/packages/amplication-server/src/guards/gql-auth.guard.ts +++ b/packages/amplication-server/src/guards/gql-auth.guard.ts @@ -5,12 +5,12 @@ import { GqlExecutionContext } from '@nestjs/graphql'; import { get } from 'lodash'; import { User } from 'src/models'; import { PermissionsService } from 'src/core/permissions/permissions.service'; -import { AuthorizableResourceParameter } from 'src/enums/AuthorizableResourceParameter'; +import { AuthorizableOriginParameter } from 'src/enums/AuthorizableOriginParameter'; export const AUTHORIZE_CONTEXT = 'authorizeContext'; export type AuthorizeContextParameters = { - parameterType: AuthorizableResourceParameter; + parameterType: AuthorizableOriginParameter; parameterPath: string; }; diff --git a/packages/amplication-server/src/interceptors/inject-context.interceptor.spec.ts b/packages/amplication-server/src/interceptors/inject-context.interceptor.spec.ts index 2c03554d42..129073baf5 100644 --- a/packages/amplication-server/src/interceptors/inject-context.interceptor.spec.ts +++ b/packages/amplication-server/src/interceptors/inject-context.interceptor.spec.ts @@ -6,12 +6,12 @@ import { INJECT_CONTEXT_VALUE } from './inject-context.interceptor'; import { Reflector } from '@nestjs/core'; -import { InjectableResourceParameter } from 'src/enums/InjectableResourceParameter'; +import { InjectableOriginParameter } from 'src/enums/InjectableOriginParameter'; const EXAMPLE_HANDLER = () => null; const EXAMPLE_INJECT_CONTEXT_VALUE_PARAMETERS: InjectContextValueParameters = { parameterPath: 'data.workspace.connect.id', - parameterType: InjectableResourceParameter.WorkspaceId + parameterType: InjectableOriginParameter.WorkspaceId }; const EXAMPLE_WORKSPACE_ID = 'ExampleWorkspaceId'; diff --git a/packages/amplication-server/src/interceptors/inject-context.interceptor.ts b/packages/amplication-server/src/interceptors/inject-context.interceptor.ts index a86be2b6f4..7c522a29db 100644 --- a/packages/amplication-server/src/interceptors/inject-context.interceptor.ts +++ b/packages/amplication-server/src/interceptors/inject-context.interceptor.ts @@ -5,7 +5,7 @@ import { NestInterceptor } from '@nestjs/common'; import { set } from 'lodash'; -import { InjectableResourceParameter } from 'src/enums/InjectableResourceParameter'; +import { InjectableOriginParameter } from 'src/enums/InjectableOriginParameter'; import { User } from 'src/models'; import { Reflector } from '@nestjs/core'; import { GqlExecutionContext } from '@nestjs/graphql'; @@ -13,7 +13,7 @@ import { GqlExecutionContext } from '@nestjs/graphql'; export const INJECT_CONTEXT_VALUE = 'injectContextValue'; export type InjectContextValueParameters = { - parameterType: InjectableResourceParameter; + parameterType: InjectableOriginParameter; parameterPath: string; }; @@ -54,13 +54,13 @@ export class InjectContextInterceptor implements NestInterceptor { private getInjectableContextValue( user: User, - parameterType: InjectableResourceParameter + parameterType: InjectableOriginParameter ): string | undefined { switch (parameterType) { - case InjectableResourceParameter.UserId: { + case InjectableOriginParameter.UserId: { return user.id; } - case InjectableResourceParameter.WorkspaceId: { + case InjectableOriginParameter.WorkspaceId: { return user.workspace?.id; } default: { diff --git a/packages/amplication-server/src/schema.graphql b/packages/amplication-server/src/schema.graphql index f4683449fa..510a2e2083 100644 --- a/packages/amplication-server/src/schema.graphql +++ b/packages/amplication-server/src/schema.graphql @@ -332,9 +332,9 @@ enum SortOrder { type PendingChange { action: EnumPendingChangeAction! - resourceType: EnumPendingChangeResourceType! - resourceId: String! - resource: PendingChangeResource! + originType: EnumPendingChangeOriginType! + originId: String! + origin: PendingChangeOrigin! versionNumber: Int! } @@ -344,12 +344,12 @@ enum EnumPendingChangeAction { Delete } -enum EnumPendingChangeResourceType { +enum EnumPendingChangeOriginType { Entity Block } -union PendingChangeResource = Entity | Block +union PendingChangeOrigin = Entity | Block type Block { id: String! diff --git a/packages/amplication-storage-gateway/package-lock.json b/packages/amplication-storage-gateway/package-lock.json index 7a1e8e92bf..0fce1f1ca4 100644 --- a/packages/amplication-storage-gateway/package-lock.json +++ b/packages/amplication-storage-gateway/package-lock.json @@ -1,6 +1,6 @@ { "name": "@amplication/storage-gateway", - "version": "0.14.10", + "version": "0.14.11", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/amplication-storage-gateway/package.json b/packages/amplication-storage-gateway/package.json index b98d45c13e..509099c92f 100644 --- a/packages/amplication-storage-gateway/package.json +++ b/packages/amplication-storage-gateway/package.json @@ -16,7 +16,7 @@ "docker:build": "docker build ." }, "dependencies": { - "@amplication/kafka": "^0.14.10", + "@amplication/kafka": "^0.14.11", "@nestjs/common": "8.4.4", "@nestjs/config": "1.1.5", "@nestjs/core": "8.2.3", @@ -74,5 +74,5 @@ "/dist/" ] }, - "version": "0.14.10" + "version": "0.14.11" } diff --git a/packages/amplication-storage-gateway/src/auth/auth.module.ts b/packages/amplication-storage-gateway/src/auth/auth.module.ts index f58c54a22b..c73694cff9 100644 --- a/packages/amplication-storage-gateway/src/auth/auth.module.ts +++ b/packages/amplication-storage-gateway/src/auth/auth.module.ts @@ -1,10 +1,10 @@ import { Module } from "@nestjs/common"; import { ConfigService } from "@nestjs/config"; import { JwtModule } from "@nestjs/jwt"; -import { JWT_SECRET_KEY } from "src/constants"; -import { SecretsManagerModule } from "src/providers/secrets/secretsManager.module"; -import { SecretsManagerService } from "src/providers/secrets/secretsManager.service"; -import { QueueModule } from "src/queue/queue.module"; +import { JWT_SECRET_KEY } from "../constants"; +import { SecretsManagerModule } from "../providers/secrets/secretsManager.module"; +import { SecretsManagerService } from "../providers/secrets/secretsManager.service"; +import { QueueModule } from "../queue/queue.module"; import { JwtStrategy } from "./jwt/jwt.strategy"; import { jwtSecretFactory } from "./jwt/jwtSecretFactory"; diff --git a/packages/amplication-storage-gateway/src/auth/codeAccessGuard.guard.ts b/packages/amplication-storage-gateway/src/auth/codeAccessGuard.guard.ts index 76e3b7b5dc..9de37dca35 100644 --- a/packages/amplication-storage-gateway/src/auth/codeAccessGuard.guard.ts +++ b/packages/amplication-storage-gateway/src/auth/codeAccessGuard.guard.ts @@ -1,7 +1,7 @@ import { ExecutionContext, Injectable } from "@nestjs/common"; import { decode } from "jsonwebtoken"; import { ExtractJwt } from "passport-jwt"; -import { QueueService } from "src/queue/queue.service"; +import { QueueService } from "../queue/queue.service"; @Injectable() export class CodeAccessGuard { constructor(protected readonly queueService: QueueService) {} diff --git a/packages/amplication-storage-gateway/src/queue/queue.service.ts b/packages/amplication-storage-gateway/src/queue/queue.service.ts index f28c8cc975..feab4a17d1 100644 --- a/packages/amplication-storage-gateway/src/queue/queue.service.ts +++ b/packages/amplication-storage-gateway/src/queue/queue.service.ts @@ -2,7 +2,7 @@ import { Inject, Injectable, OnModuleInit } from "@nestjs/common"; import { ConfigService } from "@nestjs/config"; import { ClientKafka } from "@nestjs/microservices"; import assert from "assert"; -import { CHECK_USER_ACCESS_TOPIC } from "src/constants"; +import { CHECK_USER_ACCESS_TOPIC } from "../constants"; export const QUEUE_SERVICE_NAME = "QUEUE_SERVICE"; diff --git a/packages/amplication-storage-gateway/src/storage/storage.controller.ts b/packages/amplication-storage-gateway/src/storage/storage.controller.ts index 67772336e7..e002b8b79f 100644 --- a/packages/amplication-storage-gateway/src/storage/storage.controller.ts +++ b/packages/amplication-storage-gateway/src/storage/storage.controller.ts @@ -6,10 +6,10 @@ import { Query, UseGuards, } from "@nestjs/common"; -import { CodeAccessGuard } from "src/auth/codeAccessGuard.guard"; -import { DefaultAuthGuard } from "src/auth/defaultAuth.guard"; -import { PaginationQuery, PaginationResult } from "src/pagination"; -import { PaginationService } from "src/pagination/pagination.service"; +import { CodeAccessGuard } from "../auth/codeAccessGuard.guard"; +import { DefaultAuthGuard } from "../auth/defaultAuth.guard"; +import { PaginationQuery, PaginationResult } from "../pagination"; +import { PaginationService } from "../pagination/pagination.service"; import { FileMeta } from "./dto/FileMeta"; import { StorageService } from "./storage.service"; diff --git a/packages/amplication-storage-gateway/src/storage/storage.module.ts b/packages/amplication-storage-gateway/src/storage/storage.module.ts index b4225072f1..eb1d58e305 100644 --- a/packages/amplication-storage-gateway/src/storage/storage.module.ts +++ b/packages/amplication-storage-gateway/src/storage/storage.module.ts @@ -1,5 +1,5 @@ import { Module } from "@nestjs/common"; -import { QueueModule } from "src/queue/queue.module"; +import { QueueModule } from "../queue/queue.module"; import { PaginationModule } from "../pagination/pagination.module"; import { StorageController } from "./storage.controller"; import { StorageResolver } from "./storage.resolver"; diff --git a/packages/amplication-storage-gateway/src/storage/storage.service.ts b/packages/amplication-storage-gateway/src/storage/storage.service.ts index 39fc8d7f20..1db2759c22 100644 --- a/packages/amplication-storage-gateway/src/storage/storage.service.ts +++ b/packages/amplication-storage-gateway/src/storage/storage.service.ts @@ -3,7 +3,7 @@ import { ConfigService } from "@nestjs/config"; import { readFileSync } from "fs"; import { sync } from "glob"; import { join } from "path"; -import { BASE_BUILDS_FOLDER, DEFAULT_BUILDS_FOLDER } from "src/constants"; +import { BASE_BUILDS_FOLDER, DEFAULT_BUILDS_FOLDER } from "../constants"; import { FileMeta } from "./dto/FileMeta"; import { NodeTypeEnum } from "./dto/NodeTypeEnum";