From 995da93adf5177d7a86c1c12f0a0cefa5232b2ce Mon Sep 17 00:00:00 2001 From: Anil Maktala Date: Fri, 28 Feb 2025 13:50:17 -0500 Subject: [PATCH 1/9] disable operations --- .../disable-operations/index.mdx | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx diff --git a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx new file mode 100644 index 00000000000..6f60735d6a1 --- /dev/null +++ b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx @@ -0,0 +1,98 @@ +import { getCustomStaticPath } from '@/utils/getCustomStaticPath'; + +export const meta = { + title: 'Disable Operations', + description: + 'Disable Operations for your data model', + platforms: [ + 'android', + 'angular', + 'flutter', + 'javascript', + 'nextjs', + 'react', + 'react-native', + 'swift', + 'vue' + ] +}; + +export const getStaticPaths = async () => { + return getCustomStaticPath(meta.platforms); +}; + +export function getStaticProps(context) { + return { + props: { + platform: context.params.platform, + meta + } + }; +} + +The `disableOperations` method allows you to selectively disable specific GraphQL operations for a model in your Amplify application. This can be useful for enforcing access control patterns, optimizing performance, or implementing specialized API designs. + +## Usage +You can disable operations by adding the `disableOperations` method to your model definition: + +```ts title="amplify/data/resource.ts" +export const schema = a.schema({ + Customer: a + .model({ + name: a.string(), + phoneNumber: a.phone(), + accountRepresentativeId: a.id().required(), + }) + // highlight-next-line + .disableOperations(["mutations","subcriptions","queries"]) + .authorization(allow => [allow.publicApiKey()]), +}); +``` + +##Available Operation Types + +The disableOperations method accepts an array of operation types that you want to disable: + +###General Operation Categories + +"mutations": Disables all mutation operations (create, update, delete) +"subscriptions": Disables all real-time subscription operations (onCreate, onUpdate, onDelete) +"queries": Disables all query operations (get, list) + +###Specific Operations +You can also disable more granular operations: +Query Operations + +"get": Disables the ability to fetch a single item by ID +"list": Disables the ability to fetch multiple items + +###Mutation Operations + +"create": Disables the ability to create new items +"update": Disables the ability to update existing items +"delete": Disables the ability to delete items + +###Subscription Operations + +"onCreate": Disables real-time notifications when items are created +"onUpdate": Disables real-time notifications when items are updated +"onDelete": Disables real-time notifications when items are deleted + +You can specify one or more operation types in the array to disable them: + +``` +// Disable all mutations +disableOperations: ["mutations"] + +// Disable both subscriptions and queries +disableOperations: ["subscriptions", "queries"] + +// Disable specific operations +disableOperations: ["create", "update", "list"] + +// Disable specific subscription types +disableOperations: ["onCreate", "onUpdate"] + +// Mix general categories with specific operations +disableOperations: ["queries", "create", "onDelete"] +``` From 96ca47f9844915ac5d578f6e49ff93deb6733bc7 Mon Sep 17 00:00:00 2001 From: Anil Maktala Date: Fri, 28 Feb 2025 13:52:32 -0500 Subject: [PATCH 2/9] added entry in directory file --- src/directory/directory.mjs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/directory/directory.mjs b/src/directory/directory.mjs index 4437768235f..937df52c6dd 100644 --- a/src/directory/directory.mjs +++ b/src/directory/directory.mjs @@ -234,6 +234,9 @@ export const directory = { }, { path: 'src/pages/[platform]/build-a-backend/data/data-modeling/secondary-index/index.mdx' + }, + { + path: 'src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx' } ] }, From 6b1ccde2c19a6cf5e4347e58cf8819b1f6d6303e Mon Sep 17 00:00:00 2001 From: Anil Maktala Date: Fri, 28 Feb 2025 13:57:32 -0500 Subject: [PATCH 3/9] updated headings --- .../data/data-modeling/disable-operations/index.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx index 6f60735d6a1..6e4c1d5c806 100644 --- a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx +++ b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx @@ -49,30 +49,30 @@ export const schema = a.schema({ }); ``` -##Available Operation Types +## Available Operation Types The disableOperations method accepts an array of operation types that you want to disable: -###General Operation Categories +### General Operation Categories "mutations": Disables all mutation operations (create, update, delete) "subscriptions": Disables all real-time subscription operations (onCreate, onUpdate, onDelete) "queries": Disables all query operations (get, list) -###Specific Operations +### Specific Operations You can also disable more granular operations: Query Operations "get": Disables the ability to fetch a single item by ID "list": Disables the ability to fetch multiple items -###Mutation Operations +### Mutation Operations "create": Disables the ability to create new items "update": Disables the ability to update existing items "delete": Disables the ability to delete items -###Subscription Operations +### Subscription Operations "onCreate": Disables real-time notifications when items are created "onUpdate": Disables real-time notifications when items are updated From d79bb9efa0a0665ea289a7799b3b7137c9a1fb53 Mon Sep 17 00:00:00 2001 From: Anil Maktala Date: Fri, 28 Feb 2025 13:58:42 -0500 Subject: [PATCH 4/9] updated --- .../data/data-modeling/disable-operations/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx index 6e4c1d5c806..f2b278665f4 100644 --- a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx +++ b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx @@ -51,7 +51,7 @@ export const schema = a.schema({ ## Available Operation Types -The disableOperations method accepts an array of operation types that you want to disable: +The `disableOperations` method accepts an array of operation types that you want to disable: ### General Operation Categories From 4f1049cd16955948be6034ffe16690b24e553ec1 Mon Sep 17 00:00:00 2001 From: Anil Maktala Date: Fri, 28 Feb 2025 14:17:11 -0500 Subject: [PATCH 5/9] updated --- .../disable-operations/index.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx index f2b278665f4..11820b91d74 100644 --- a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx +++ b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx @@ -55,28 +55,28 @@ The `disableOperations` method accepts an array of operation types that you want ### General Operation Categories -"mutations": Disables all mutation operations (create, update, delete) -"subscriptions": Disables all real-time subscription operations (onCreate, onUpdate, onDelete) -"queries": Disables all query operations (get, list) +- 'mutations': Disables all mutation operations (create, update, delete) +- 'subscriptions': Disables all real-time subscription operations (onCreate, onUpdate, onDelete) +- 'queries': Disables all query operations (get, list) ### Specific Operations You can also disable more granular operations: Query Operations -"get": Disables the ability to fetch a single item by ID -"list": Disables the ability to fetch multiple items +- 'get': Disables the ability to fetch a single item by ID +- 'list': Disables the ability to fetch multiple items ### Mutation Operations -"create": Disables the ability to create new items -"update": Disables the ability to update existing items -"delete": Disables the ability to delete items +- 'create': Disables the ability to create new items +- 'update': Disables the ability to update existing items +- 'delete': Disables the ability to delete items ### Subscription Operations -"onCreate": Disables real-time notifications when items are created -"onUpdate": Disables real-time notifications when items are updated -"onDelete": Disables real-time notifications when items are deleted +- 'onCreate': Disables real-time notifications when items are created +- 'onUpdate': Disables real-time notifications when items are updated +- 'onDelete': Disables real-time notifications when items are deleted You can specify one or more operation types in the array to disable them: From 8f5bbc5555d25f2aff1e55f632e3afcdfeaa4f4d Mon Sep 17 00:00:00 2001 From: Anil Maktala Date: Fri, 28 Feb 2025 14:18:58 -0500 Subject: [PATCH 6/9] fixed styling --- .../disable-operations/index.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx index 11820b91d74..a1d5a9c7789 100644 --- a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx +++ b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx @@ -55,28 +55,28 @@ The `disableOperations` method accepts an array of operation types that you want ### General Operation Categories -- 'mutations': Disables all mutation operations (create, update, delete) -- 'subscriptions': Disables all real-time subscription operations (onCreate, onUpdate, onDelete) -- 'queries': Disables all query operations (get, list) +- `mutations`: Disables all mutation operations (create, update, delete) +- `subscriptions`: Disables all real-time subscription operations (onCreate, onUpdate, onDelete) +- `queries`: Disables all query operations (get, list) ### Specific Operations You can also disable more granular operations: Query Operations -- 'get': Disables the ability to fetch a single item by ID -- 'list': Disables the ability to fetch multiple items +- `get`: Disables the ability to fetch a single item by ID +- `list`: Disables the ability to fetch multiple items ### Mutation Operations -- 'create': Disables the ability to create new items -- 'update': Disables the ability to update existing items -- 'delete': Disables the ability to delete items +- `create`: Disables the ability to create new items +- `update`: Disables the ability to update existing items +- `delete`: Disables the ability to delete items ### Subscription Operations -- 'onCreate': Disables real-time notifications when items are created -- 'onUpdate': Disables real-time notifications when items are updated -- 'onDelete': Disables real-time notifications when items are deleted +- `onCreate`: Disables real-time notifications when items are created +- `onUpdate`: Disables real-time notifications when items are updated +- `onDelete`: Disables real-time notifications when items are deleted You can specify one or more operation types in the array to disable them: From b5688ee8fdc82bf85d280b4091606a34b18971cc Mon Sep 17 00:00:00 2001 From: Anil Maktala Date: Fri, 28 Feb 2025 14:42:40 -0500 Subject: [PATCH 7/9] correction --- .../data/data-modeling/disable-operations/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx index a1d5a9c7789..82a22ad9f14 100644 --- a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx +++ b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx @@ -44,7 +44,7 @@ export const schema = a.schema({ accountRepresentativeId: a.id().required(), }) // highlight-next-line - .disableOperations(["mutations","subcriptions","queries"]) + .disableOperations(["mutations","subscriptions","queries"]) .authorization(allow => [allow.publicApiKey()]), }); ``` From c1b0771e8471a6974b707550cef3bd57f92c9526 Mon Sep 17 00:00:00 2001 From: Anil Maktala Date: Fri, 28 Feb 2025 15:14:49 -0500 Subject: [PATCH 8/9] Update src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx Co-authored-by: josef --- .../data/data-modeling/disable-operations/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx index 82a22ad9f14..7e9969f2fb1 100644 --- a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx +++ b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx @@ -44,7 +44,7 @@ export const schema = a.schema({ accountRepresentativeId: a.id().required(), }) // highlight-next-line - .disableOperations(["mutations","subscriptions","queries"]) + .disableOperations(["mutations", "subscriptions", "queries"]) .authorization(allow => [allow.publicApiKey()]), }); ``` From 0c3bcde4793ffd5e78758776d8aa8161515e7119 Mon Sep 17 00:00:00 2001 From: Anil Maktala Date: Fri, 28 Feb 2025 15:16:40 -0500 Subject: [PATCH 9/9] Update index.mdx --- .../data/data-modeling/disable-operations/index.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx index 7e9969f2fb1..de81572c91e 100644 --- a/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx +++ b/src/pages/[platform]/build-a-backend/data/data-modeling/disable-operations/index.mdx @@ -30,9 +30,8 @@ export function getStaticProps(context) { }; } -The `disableOperations` method allows you to selectively disable specific GraphQL operations for a model in your Amplify application. This can be useful for enforcing access control patterns, optimizing performance, or implementing specialized API designs. +The `disableOperations` method allows you to selectively disable specific GraphQL operations for a model in your Amplify application. This can be useful for implementing specialized API designs and reduce the number of resources being deployed. -## Usage You can disable operations by adding the `disableOperations` method to your model definition: ```ts title="amplify/data/resource.ts"