From b5fb912cf174ae6d4dad4cf03955b7583f5b0263 Mon Sep 17 00:00:00 2001 From: Nikhil Swaminathan <2429410+swaminator@users.noreply.github.com> Date: Thu, 2 May 2024 12:26:24 -0700 Subject: [PATCH] Update QS with JavaScript example (#7457) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build UI additions * updates to option 1 qs vite * updated option 2 * added titles * added language to clarify * chore: merging `next-release/main` into `next-release/dev` (#7174) * Minor edits to Vite + React quickstart (#6926) * Updates to Vite + React quickstart * Update src/fragments/gen2/quickstart/build-a-backend.mdx Co-authored-by: Kevin Old * Update build-a-backend.mdx * Update build-a-backend.mdx * Update build-a-backend.mdx --------- Co-authored-by: Kevin Old * fix: Fix incorrect auth import path in migration guide. (#6934) * fix: Update incorrect `updateMFAPreference` parameter in JS v6 migration guide. (#6935) * Amplify Android Release 2.14.11 (#6933) * chore: refactor .layout-header into separate component (#6826) * platform typed as optional * refactor init * remove commented code * remove angry useEffect * fix typing * added layoutcontext so mobile menu closes on navigation * move import --------- Co-authored-by: katiegoines * fix: Nesting of auth cli templates (#6932) * fix: change config variable name (#6923) * Guide to support Amplify v2 with AWS Android SDK (#6927) * Update puppeteer (#6949) * Update index.mdx (#6950) * Update CODEOWNERS with correct PM alignment (#6951) * fix(flutter, js): scope "connect existing cdk" guide to respective platform (#6947) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Revert "fix(flutter, js): scope "connect existing cdk" guide to respective pl…" (#6955) This reverts commit 5998b22f18cada98ba7c6d1f35c3f6b378637476. * chore: remove duplicated logic between Layout and LayoutHeader (#6954) * chore: more layout refactoring * remove unused prop, alphabetize props * improve oauth docs (#6961) * fixed gen 2 getting started guide (#6968) * Update redirects for deleted hidden pages (#6944) * Update manual installation to point to @beta tag (#6972) * include usage for multi-page apps (#6964) * include usage for multi-page apps * improve multi-page app docs * use Hub syntax * update imports in examples * chore: Clean up broken Amplify JS API reference links (#6976) * chore: Clean up broken Amplify JS API reference links. * Cleaned up language. * Update build image instructions for Gen 2 (#6978) * update build image settings for Gen 2 * remove callout and add fragment to vite guide * chore: add unit test for YoutubeEmbed component (#6983) * chore: add unit test for YoutubeEmbed component * add code coverage stats --------- Co-authored-by: katiegoines * chore: add unit tests for Accordion component (#6981) * chore: add unit tests for Accordion component * issue with window properties * fixed tracking test * working on animation issue * accordion tests * fix testing errors * added test for closing accordion * add code coverage stats --------- Co-authored-by: katiegoines * Update index.mdx (#6986) * Add env variables for algolia (#6957) * Add algolia env vars to next.config * Remove extra code string * fix(data): update REST API docs to document correct error response type (#6989) * fix(data): update React Native minimum iOS deployment target guidance; add build step to docs (#6970) * fix(data): update React Native minimum iOS deployment target; add build step to docs * address PR feedback * remove deployment target guidance * add React Native version deployment target callout * fix unrecognized syntax * replace callout with accordion * move 'upgrading' callout * Clarify behavior of forgetDevice() API regarding device tracking (#6985) * Clarify behavior of forgetDevice() API regarding device tracking This commit updates the documentation to clarify that using the forgetDevice() API results in the device being neither remembered nor tracked. Previously, the documentation suggested that forgotten devices might still be tracked, leading to confusion about the API's behavior. The revised wording aligns with the detailed description under the "Forgotten" section, ensuring consistency and eliminating ambiguity about how forgotten devices are handled. * Clarify behavior of forgetDevice() API regarding device tracking * Support for enum value listing (#6885) * Support for enum value listing * Update src/pages/gen2/build-a-backend/data/data-modeling/add-fields/index.mdx * CDK updates v2 (#6990) * Add padding to bottom of nav menu (#6991) * Adding secondary index to Gen 2 (#6996) * Adding secondary index docs * fixed some formatting for custom query fields * extend config to show addOuput (#6963) * extend config * modify wording * modify example * improve wording * Update index.mdx (#6995) * Update index.mdx * add guest access support to docs * chore: add unit tests for NextPrevious component (#7003) Co-authored-by: katiegoines * chore: add unit tests for LinkCards and LinkCard components (#7006) Co-authored-by: katiegoines * chore: add unit tests for GetStartedPopover component (#7005) Co-authored-by: katiegoines * fix: [Storage] Configure Access (#6948) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix(Swift): update data use policy info's tracking to false (#6938) * fix(Swift): update data use policy info's tracking to false * Update data-information.mdx * chore: add callouts and troubleshooting guide for configuration (#6967) * fix: resolve in-content broken links (#7011) * re-platforming * remove reference to mocking and testing for android & swift * remove reference to mocking and testing for android & swift * filtered out reference to optimistic ui for react native --------- Co-authored-by: katiegoines * update gen2 storage and function docs (#7009) * update gen2 storage and function docs * add resource access links and example * revisions, update code snippet titles * Update CODEOWNERS (#7014) * updated steps for extending components in code (#6827) Co-authored-by: Aditya Shahani * Custom business logic support as of March @beta (#7019) * Enhanced custom business logic DX * addressed tim's comments * Added custom subscription configuration worfklow * removed in-development areas * added titles * added links for deep dive material * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx * added client method for clarity. * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Apply suggestions from code review Co-authored-by: josef --------- Co-authored-by: josef Co-authored-by: Kethan sai * add storage trigger docs (#7020) * storage trigger docs * Apply suggestions from code review Co-authored-by: josef * add storage access actions --------- Co-authored-by: josef * update link checker to wait for each call to complete before making t… (#6993) * update link checker to wait for each call to complete before making the next and remove # from urls being checked * update logging to show how many links found on each page * Update tasks/link-checker.js --------- Co-authored-by: Jacob Logan Co-authored-by: katiegoines Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * custom examples (#6979) * custom examples * fix: broken link, missing / at start (#7026) Co-authored-by: katiegoines * validate and fix code snippets in Data section (#6975) * Update sandbox --dir-to-watch description (#7031) * Update index.mdx (#7035) * Fix link (#7028) * add docs to auth resource access pattern (#7032) * fix: type platform as optional in Breadcrumbs component & add unit tests (#6912) * platform typed as optional * chore: add unit tests for Breadcrumbs * testing to include platform optional * fix: type platform as optional * add tests for override values --------- Co-authored-by: katiegoines * fix: proper variable naming conventions for storage (#7033) fix: proper variable naming conventions for storage * remove explicit file extension from gen2 imports (#6946) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix: Update diff code blocks to TypeScript with code highlights (#6905) * add docs on granting defineFunction access to defineData (#7029) * standardize Gen 2 wording (#7036) * Update index.mdx (#6906) * Modify_Amplify_resources (#7018) * fix code snippets on read data page * code snippet updates * updated the code snippets * updated code snippets. * custom business page rollback * Update maplibre links (#7040) * chore: add unit tests for PlatformNavigator (#6980) * chore: add unit tests for PlatformNavigator * add code coverage * simplify * simplify --------- Co-authored-by: katiegoines * Update links to expo docs (#7044) * Update links to expo docs * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef --------- Co-authored-by: josef * chore: add unit tests for InternalLinkButton (#7000) Co-authored-by: katiegoines * chore: add addtl unit test for Block component (#6982) * chore: add addtl unit test for Block component * add code coverage stats * remove superfluous Block component --------- Co-authored-by: katiegoines * chore: add unit tests for TOC (#6984) * chore: add unit tests for TOC * add code coverage * hardcode expected hash --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLink (#6915) * chore: add unit tests for ExternalLink * fixing tracking test --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLinkButton (#6914) * chore: add unit tests for ExternalLinkButton * Update ExternalLinkButton.test.tsx triggering checks --------- Co-authored-by: katiegoines * chore: add unit tests for Footer component (#6999) Co-authored-by: katiegoines * chore: add unit tests for MigrationAlert component (#7004) * chore: add unit tests for MigrationAlert component * chore: add unit tests for MigrationAlert component --------- Co-authored-by: katiegoines * chore: add unit test for Overview component (#7002) Co-authored-by: katiegoines * chore: upgrade docsearch/react to 3.6 (#7046) * added utility type content (#7047) * chore: add unit tests for PageLastUpdated (#7001) Co-authored-by: katiegoines * chore: add unit tests for Commands and Columns (#6916) * chore: add unit test for CLICommands * chore: add unit test for Columns * Update Command.test.tsx triggering checks --------- Co-authored-by: katiegoines * Update resolution for follow-redirects (#7055) * Update relative urls (#7048) * Update relative urls * Update url * Updating link checker (#7052) * Updating link checker to account for duplicate urls from different pages and link text * Update slack formatting * Remove console.log * Add comments to function * Remove extra console.logs() * chore: update redirects list (#6969) * update redirects * updated redirects --------- Co-authored-by: katiegoines * remove allowlist role names for appsync console access page (#7081) * Add JavaScript resolver code sample to Gen 1 (#7087) * fix(JS): Update v5 JS libraries installation guides. (#7090) * fix(v5): update aws-amplify v5 dependency * chore: remove extra '0' number from versions * chore: remove vue2 block * chore: update version reference * Cbonif/field-level-auth-support-for-sql (#7091) * chore(gen2-data): update .secondaryIndexes example to match the latest interface (#7095) * update setup auth client example with correct props (#7106) * update auth with correct props * Change generated function env package name (#7096) * Update typo in url for localhost (#7110) * update next config to use a static build Id (#7102) Co-authored-by: Jacob Logan * chore: Add callout on Analytics buffer persistence in Amplify JS (#7115) * chore: Add callout on Analytics buffer persistence in Amplify JS. * PR feedback. * Custom subscription docs to Gen 2 (#7120) * Add playsInline to videos (#7125) * autoSignIn position correction in v6 migration docs (#7059) * fix(next-release/main): update home page h1 and code block font size (#7117) (#7126) * update font sizes * add text-size-adjust * add webkit prefix, add comment * update text-size-adjust fix --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * remove parenthesis from "Amplify (Gen 2)" (#7113) * change "NPM" to "npm" (#7112) * remove explicit ".js" extension from gen2 resource imports (#7134) * remove leading slash from storage access paths (#7116) * remove unnecessary "Angular" mention in auth getting started (#7139) Removed 'Angular' from the app description. It is not necessarily an angular app. * Gen 2 Quickstart: Fix amplify console link (#7141) * fix amplify console link * fix text from AWS Console to Amplify Console * updated alt text for Amplify console * Update src/fragments/gen2/quickstart/deploy-and-host.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Update src/pages/gen2/deploy-and-host/fullstack-branching/branch-deployments/index.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> --------- Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Add Favicon and apple-touch icons to root (#7137) * add 96x96 favicons * add favicon and apple-touch to root * updated icons --------- Co-authored-by: Jacob Logan * docs(migration): fixes mislabeling notification enable snippet (#7135) the v5 snippet was labeled as v6 and the v6 was labeled as v5 Co-authored-by: derrik.fleming * edits to custom business logic (#7129) * remove console.log (#7147) * fix: copied code no longer includes markdown comments (#7146) * fix: copied code no longer includes markdown comments * minor cleanup * splite prepareCopyText to it's own export for easier testing * fix MDXCode mock * chore(react-native): Add callouts for dropped Expo Go support (#7160) * Update index.mdx (#7165) * Update github link to maplibre repo (#7162) * Gen2 storage docs web (#7163) * add storage docs * add transfer acceleration documentation * fix spelling * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix links and add cors policy callout * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/copy-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/copy-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/lambda-triggers/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/index.mdx Co-authored-by: josef * add language in code snippets and change list files sidebar title * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: josef * Storage docs update (#7171) * update list files to get files * update extend S3 resources section * update options links for upload api * remove gen2 pages added * chore: merge `main` into `next-release/main` (#7173) * Minor edits to Vite + React quickstart (#6926) * Updates to Vite + React quickstart * Update src/fragments/gen2/quickstart/build-a-backend.mdx Co-authored-by: Kevin Old * Update build-a-backend.mdx * Update build-a-backend.mdx * Update build-a-backend.mdx --------- Co-authored-by: Kevin Old * fix: Fix incorrect auth import path in migration guide. (#6934) * fix: Update incorrect `updateMFAPreference` parameter in JS v6 migration guide. (#6935) * Amplify Android Release 2.14.11 (#6933) * chore: refactor .layout-header into separate component (#6826) * platform typed as optional * refactor init * remove commented code * remove angry useEffect * fix typing * added layoutcontext so mobile menu closes on navigation * move import --------- Co-authored-by: katiegoines * fix: Nesting of auth cli templates (#6932) * fix: change config variable name (#6923) * Guide to support Amplify v2 with AWS Android SDK (#6927) * Update puppeteer (#6949) * Update index.mdx (#6950) * Update CODEOWNERS with correct PM alignment (#6951) * fix(flutter, js): scope "connect existing cdk" guide to respective platform (#6947) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Revert "fix(flutter, js): scope "connect existing cdk" guide to respective pl…" (#6955) This reverts commit 5998b22f18cada98ba7c6d1f35c3f6b378637476. * chore: remove duplicated logic between Layout and LayoutHeader (#6954) * chore: more layout refactoring * remove unused prop, alphabetize props * improve oauth docs (#6961) * fixed gen 2 getting started guide (#6968) * Update redirects for deleted hidden pages (#6944) * Update manual installation to point to @beta tag (#6972) * include usage for multi-page apps (#6964) * include usage for multi-page apps * improve multi-page app docs * use Hub syntax * update imports in examples * chore: Clean up broken Amplify JS API reference links (#6976) * chore: Clean up broken Amplify JS API reference links. * Cleaned up language. * Update build image instructions for Gen 2 (#6978) * update build image settings for Gen 2 * remove callout and add fragment to vite guide * chore: add unit test for YoutubeEmbed component (#6983) * chore: add unit test for YoutubeEmbed component * add code coverage stats --------- Co-authored-by: katiegoines * chore: add unit tests for Accordion component (#6981) * chore: add unit tests for Accordion component * issue with window properties * fixed tracking test * working on animation issue * accordion tests * fix testing errors * added test for closing accordion * add code coverage stats --------- Co-authored-by: katiegoines * Update index.mdx (#6986) * Add env variables for algolia (#6957) * Add algolia env vars to next.config * Remove extra code string * fix(data): update REST API docs to document correct error response type (#6989) * fix(data): update React Native minimum iOS deployment target guidance; add build step to docs (#6970) * fix(data): update React Native minimum iOS deployment target; add build step to docs * address PR feedback * remove deployment target guidance * add React Native version deployment target callout * fix unrecognized syntax * replace callout with accordion * move 'upgrading' callout * Clarify behavior of forgetDevice() API regarding device tracking (#6985) * Clarify behavior of forgetDevice() API regarding device tracking This commit updates the documentation to clarify that using the forgetDevice() API results in the device being neither remembered nor tracked. Previously, the documentation suggested that forgotten devices might still be tracked, leading to confusion about the API's behavior. The revised wording aligns with the detailed description under the "Forgotten" section, ensuring consistency and eliminating ambiguity about how forgotten devices are handled. * Clarify behavior of forgetDevice() API regarding device tracking * Support for enum value listing (#6885) * Support for enum value listing * Update src/pages/gen2/build-a-backend/data/data-modeling/add-fields/index.mdx * CDK updates v2 (#6990) * Add padding to bottom of nav menu (#6991) * Adding secondary index to Gen 2 (#6996) * Adding secondary index docs * fixed some formatting for custom query fields * extend config to show addOuput (#6963) * extend config * modify wording * modify example * improve wording * Update index.mdx (#6995) * Update index.mdx * add guest access support to docs * chore: add unit tests for NextPrevious component (#7003) Co-authored-by: katiegoines * chore: add unit tests for LinkCards and LinkCard components (#7006) Co-authored-by: katiegoines * chore: add unit tests for GetStartedPopover component (#7005) Co-authored-by: katiegoines * fix: [Storage] Configure Access (#6948) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix(Swift): update data use policy info's tracking to false (#6938) * fix(Swift): update data use policy info's tracking to false * Update data-information.mdx * chore: add callouts and troubleshooting guide for configuration (#6967) * fix: resolve in-content broken links (#7011) * re-platforming * remove reference to mocking and testing for android & swift * remove reference to mocking and testing for android & swift * filtered out reference to optimistic ui for react native --------- Co-authored-by: katiegoines * update gen2 storage and function docs (#7009) * update gen2 storage and function docs * add resource access links and example * revisions, update code snippet titles * Update CODEOWNERS (#7014) * updated steps for extending components in code (#6827) Co-authored-by: Aditya Shahani * Custom business logic support as of March @beta (#7019) * Enhanced custom business logic DX * addressed tim's comments * Added custom subscription configuration worfklow * removed in-development areas * added titles * added links for deep dive material * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx * added client method for clarity. * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Apply suggestions from code review Co-authored-by: josef --------- Co-authored-by: josef Co-authored-by: Kethan sai * add storage trigger docs (#7020) * storage trigger docs * Apply suggestions from code review Co-authored-by: josef * add storage access actions --------- Co-authored-by: josef * update link checker to wait for each call to complete before making t… (#6993) * update link checker to wait for each call to complete before making the next and remove # from urls being checked * update logging to show how many links found on each page * Update tasks/link-checker.js --------- Co-authored-by: Jacob Logan Co-authored-by: katiegoines Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * custom examples (#6979) * custom examples * fix: broken link, missing / at start (#7026) Co-authored-by: katiegoines * validate and fix code snippets in Data section (#6975) * Update sandbox --dir-to-watch description (#7031) * Update index.mdx (#7035) * Fix link (#7028) * add docs to auth resource access pattern (#7032) * fix: type platform as optional in Breadcrumbs component & add unit tests (#6912) * platform typed as optional * chore: add unit tests for Breadcrumbs * testing to include platform optional * fix: type platform as optional * add tests for override values --------- Co-authored-by: katiegoines * fix: proper variable naming conventions for storage (#7033) fix: proper variable naming conventions for storage * remove explicit file extension from gen2 imports (#6946) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix: Update diff code blocks to TypeScript with code highlights (#6905) * add docs on granting defineFunction access to defineData (#7029) * standardize Gen 2 wording (#7036) * Update index.mdx (#6906) * Modify_Amplify_resources (#7018) * fix code snippets on read data page * code snippet updates * updated the code snippets * updated code snippets. * custom business page rollback * Update maplibre links (#7040) * chore: add unit tests for PlatformNavigator (#6980) * chore: add unit tests for PlatformNavigator * add code coverage * simplify * simplify --------- Co-authored-by: katiegoines * Update links to expo docs (#7044) * Update links to expo docs * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef --------- Co-authored-by: josef * chore: add unit tests for InternalLinkButton (#7000) Co-authored-by: katiegoines * chore: add addtl unit test for Block component (#6982) * chore: add addtl unit test for Block component * add code coverage stats * remove superfluous Block component --------- Co-authored-by: katiegoines * chore: add unit tests for TOC (#6984) * chore: add unit tests for TOC * add code coverage * hardcode expected hash --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLink (#6915) * chore: add unit tests for ExternalLink * fixing tracking test --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLinkButton (#6914) * chore: add unit tests for ExternalLinkButton * Update ExternalLinkButton.test.tsx triggering checks --------- Co-authored-by: katiegoines * chore: add unit tests for Footer component (#6999) Co-authored-by: katiegoines * chore: add unit tests for MigrationAlert component (#7004) * chore: add unit tests for MigrationAlert component * chore: add unit tests for MigrationAlert component --------- Co-authored-by: katiegoines * chore: add unit test for Overview component (#7002) Co-authored-by: katiegoines * chore: upgrade docsearch/react to 3.6 (#7046) * added utility type content (#7047) * chore: add unit tests for PageLastUpdated (#7001) Co-authored-by: katiegoines * chore: add unit tests for Commands and Columns (#6916) * chore: add unit test for CLICommands * chore: add unit test for Columns * Update Command.test.tsx triggering checks --------- Co-authored-by: katiegoines * Update resolution for follow-redirects (#7055) * Update relative urls (#7048) * Update relative urls * Update url * Updating link checker (#7052) * Updating link checker to account for duplicate urls from different pages and link text * Update slack formatting * Remove console.log * Add comments to function * Remove extra console.logs() * chore: update redirects list (#6969) * update redirects * updated redirects --------- Co-authored-by: katiegoines * remove allowlist role names for appsync console access page (#7081) * Add JavaScript resolver code sample to Gen 1 (#7087) * fix(JS): Update v5 JS libraries installation guides. (#7090) * fix(v5): update aws-amplify v5 dependency * chore: remove extra '0' number from versions * chore: remove vue2 block * chore: update version reference * Cbonif/field-level-auth-support-for-sql (#7091) * chore(gen2-data): update .secondaryIndexes example to match the latest interface (#7095) * update setup auth client example with correct props (#7106) * update auth with correct props * Change generated function env package name (#7096) * Update typo in url for localhost (#7110) * update next config to use a static build Id (#7102) Co-authored-by: Jacob Logan * chore: Add callout on Analytics buffer persistence in Amplify JS (#7115) * chore: Add callout on Analytics buffer persistence in Amplify JS. * PR feedback. * Custom subscription docs to Gen 2 (#7120) * Add playsInline to videos (#7125) * autoSignIn position correction in v6 migration docs (#7059) * fix(next-release/main): update home page h1 and code block font size (#7117) (#7126) * update font sizes * add text-size-adjust * add webkit prefix, add comment * update text-size-adjust fix --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * remove parenthesis from "Amplify (Gen 2)" (#7113) * change "NPM" to "npm" (#7112) * remove explicit ".js" extension from gen2 resource imports (#7134) * remove leading slash from storage access paths (#7116) * remove unnecessary "Angular" mention in auth getting started (#7139) Removed 'Angular' from the app description. It is not necessarily an angular app. * Gen 2 Quickstart: Fix amplify console link (#7141) * fix amplify console link * fix text from AWS Console to Amplify Console * updated alt text for Amplify console * Update src/fragments/gen2/quickstart/deploy-and-host.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Update src/pages/gen2/deploy-and-host/fullstack-branching/branch-deployments/index.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> --------- Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Add Favicon and apple-touch icons to root (#7137) * add 96x96 favicons * add favicon and apple-touch to root * updated icons --------- Co-authored-by: Jacob Logan * docs(migration): fixes mislabeling notification enable snippet (#7135) the v5 snippet was labeled as v6 and the v6 was labeled as v5 Co-authored-by: derrik.fleming * edits to custom business logic (#7129) * remove console.log (#7147) * fix: copied code no longer includes markdown comments (#7146) * fix: copied code no longer includes markdown comments * minor cleanup * splite prepareCopyText to it's own export for easier testing * fix MDXCode mock * chore(react-native): Add callouts for dropped Expo Go support (#7160) * Update index.mdx (#7165) * Update github link to maplibre repo (#7162) * remove gen2 pages added --------- Co-authored-by: Jim Eagan <84857865+hibler13@users.noreply.github.com> Co-authored-by: Kevin Old Co-authored-by: Jim Blanchard Co-authored-by: Ankit Shah <22114629+ankpshah@users.noreply.github.com> Co-authored-by: katiegoines Co-authored-by: Dan Kiuna Co-authored-by: Kihara, Takuya Co-authored-by: Tyler Roach Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: Rene Brandel <4989523+renebrandel@users.noreply.github.com> Co-authored-by: Elijah Quartey Co-authored-by: Heather Buchel Co-authored-by: John Corser Co-authored-by: Heather Pundt <119376175+heatheramz@users.noreply.github.com> Co-authored-by: Nikhil Swaminathan <2429410+swaminator@users.noreply.github.com> Co-authored-by: Jay Raval Co-authored-by: David McAfee Co-authored-by: Kethan sai Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: erinleigh90 <106691284+erinleigh90@users.noreply.github.com> Co-authored-by: Edward Foyle Co-authored-by: Adi <34354177+the1adi@users.noreply.github.com> Co-authored-by: Aditya Shahani Co-authored-by: josef Co-authored-by: jacoblogan Co-authored-by: Jacob Logan Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> Co-authored-by: Chris Bonifacio Co-authored-by: Roshane Pascual Co-authored-by: Charles Shin Co-authored-by: Ujjwol Shrestha Co-authored-by: Gen Tamura Co-authored-by: dwittle <72715628+dwittle@users.noreply.github.com> Co-authored-by: Anil Maktala Co-authored-by: israx <70438514+israx@users.noreply.github.com> Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Co-authored-by: Nairi Areg <51801223+NairiAreg@users.noreply.github.com> Co-authored-by: spivakov83 Co-authored-by: Harshita Daddala Co-authored-by: derrik Co-authored-by: derrik.fleming Co-authored-by: Chris F <5827964+cshfang@users.noreply.github.com> --------- Co-authored-by: Jim Eagan <84857865+hibler13@users.noreply.github.com> Co-authored-by: Kevin Old Co-authored-by: Jim Blanchard Co-authored-by: Ankit Shah <22114629+ankpshah@users.noreply.github.com> Co-authored-by: katiegoines Co-authored-by: Dan Kiuna Co-authored-by: Kihara, Takuya Co-authored-by: Tyler Roach Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: Rene Brandel <4989523+renebrandel@users.noreply.github.com> Co-authored-by: Elijah Quartey Co-authored-by: Heather Buchel Co-authored-by: John Corser Co-authored-by: Heather Pundt <119376175+heatheramz@users.noreply.github.com> Co-authored-by: Nikhil Swaminathan <2429410+swaminator@users.noreply.github.com> Co-authored-by: Jay Raval Co-authored-by: David McAfee Co-authored-by: Kethan sai Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: erinleigh90 <106691284+erinleigh90@users.noreply.github.com> Co-authored-by: Edward Foyle Co-authored-by: Adi <34354177+the1adi@users.noreply.github.com> Co-authored-by: Aditya Shahani Co-authored-by: josef Co-authored-by: jacoblogan Co-authored-by: Jacob Logan Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> Co-authored-by: Chris Bonifacio Co-authored-by: Roshane Pascual Co-authored-by: Charles Shin Co-authored-by: Ujjwol Shrestha Co-authored-by: Gen Tamura Co-authored-by: dwittle <72715628+dwittle@users.noreply.github.com> Co-authored-by: Anil Maktala Co-authored-by: israx <70438514+israx@users.noreply.github.com> Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Co-authored-by: Nairi Areg <51801223+NairiAreg@users.noreply.github.com> Co-authored-by: spivakov83 Co-authored-by: Harshita Daddala Co-authored-by: derrik Co-authored-by: derrik.fleming Co-authored-by: Chris F <5827964+cshfang@users.noreply.github.com> * customize form builder gen 2 * Next main to dev (#7193) * Gen2 storage docs web (#7163) * add storage docs * add transfer acceleration documentation * fix spelling * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix links and add cors policy callout * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/copy-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/copy-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/lambda-triggers/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/index.mdx Co-authored-by: josef * add language in code snippets and change list files sidebar title * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: josef * Storage docs update (#7171) * update list files to get files * update extend S3 resources section * update options links for upload api * chore: merge `main` into `next-release/main` (#7173) * Minor edits to Vite + React quickstart (#6926) * Updates to Vite + React quickstart * Update src/fragments/gen2/quickstart/build-a-backend.mdx Co-authored-by: Kevin Old * Update build-a-backend.mdx * Update build-a-backend.mdx * Update build-a-backend.mdx --------- Co-authored-by: Kevin Old * fix: Fix incorrect auth import path in migration guide. (#6934) * fix: Update incorrect `updateMFAPreference` parameter in JS v6 migration guide. (#6935) * Amplify Android Release 2.14.11 (#6933) * chore: refactor .layout-header into separate component (#6826) * platform typed as optional * refactor init * remove commented code * remove angry useEffect * fix typing * added layoutcontext so mobile menu closes on navigation * move import --------- Co-authored-by: katiegoines * fix: Nesting of auth cli templates (#6932) * fix: change config variable name (#6923) * Guide to support Amplify v2 with AWS Android SDK (#6927) * Update puppeteer (#6949) * Update index.mdx (#6950) * Update CODEOWNERS with correct PM alignment (#6951) * fix(flutter, js): scope "connect existing cdk" guide to respective platform (#6947) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Revert "fix(flutter, js): scope "connect existing cdk" guide to respective pl…" (#6955) This reverts commit 5998b22f18cada98ba7c6d1f35c3f6b378637476. * chore: remove duplicated logic between Layout and LayoutHeader (#6954) * chore: more layout refactoring * remove unused prop, alphabetize props * improve oauth docs (#6961) * fixed gen 2 getting started guide (#6968) * Update redirects for deleted hidden pages (#6944) * Update manual installation to point to @beta tag (#6972) * include usage for multi-page apps (#6964) * include usage for multi-page apps * improve multi-page app docs * use Hub syntax * update imports in examples * chore: Clean up broken Amplify JS API reference links (#6976) * chore: Clean up broken Amplify JS API reference links. * Cleaned up language. * Update build image instructions for Gen 2 (#6978) * update build image settings for Gen 2 * remove callout and add fragment to vite guide * chore: add unit test for YoutubeEmbed component (#6983) * chore: add unit test for YoutubeEmbed component * add code coverage stats --------- Co-authored-by: katiegoines * chore: add unit tests for Accordion component (#6981) * chore: add unit tests for Accordion component * issue with window properties * fixed tracking test * working on animation issue * accordion tests * fix testing errors * added test for closing accordion * add code coverage stats --------- Co-authored-by: katiegoines * Update index.mdx (#6986) * Add env variables for algolia (#6957) * Add algolia env vars to next.config * Remove extra code string * fix(data): update REST API docs to document correct error response type (#6989) * fix(data): update React Native minimum iOS deployment target guidance; add build step to docs (#6970) * fix(data): update React Native minimum iOS deployment target; add build step to docs * address PR feedback * remove deployment target guidance * add React Native version deployment target callout * fix unrecognized syntax * replace callout with accordion * move 'upgrading' callout * Clarify behavior of forgetDevice() API regarding device tracking (#6985) * Clarify behavior of forgetDevice() API regarding device tracking This commit updates the documentation to clarify that using the forgetDevice() API results in the device being neither remembered nor tracked. Previously, the documentation suggested that forgotten devices might still be tracked, leading to confusion about the API's behavior. The revised wording aligns with the detailed description under the "Forgotten" section, ensuring consistency and eliminating ambiguity about how forgotten devices are handled. * Clarify behavior of forgetDevice() API regarding device tracking * Support for enum value listing (#6885) * Support for enum value listing * Update src/pages/gen2/build-a-backend/data/data-modeling/add-fields/index.mdx * CDK updates v2 (#6990) * Add padding to bottom of nav menu (#6991) * Adding secondary index to Gen 2 (#6996) * Adding secondary index docs * fixed some formatting for custom query fields * extend config to show addOuput (#6963) * extend config * modify wording * modify example * improve wording * Update index.mdx (#6995) * Update index.mdx * add guest access support to docs * chore: add unit tests for NextPrevious component (#7003) Co-authored-by: katiegoines * chore: add unit tests for LinkCards and LinkCard components (#7006) Co-authored-by: katiegoines * chore: add unit tests for GetStartedPopover component (#7005) Co-authored-by: katiegoines * fix: [Storage] Configure Access (#6948) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix(Swift): update data use policy info's tracking to false (#6938) * fix(Swift): update data use policy info's tracking to false * Update data-information.mdx * chore: add callouts and troubleshooting guide for configuration (#6967) * fix: resolve in-content broken links (#7011) * re-platforming * remove reference to mocking and testing for android & swift * remove reference to mocking and testing for android & swift * filtered out reference to optimistic ui for react native --------- Co-authored-by: katiegoines * update gen2 storage and function docs (#7009) * update gen2 storage and function docs * add resource access links and example * revisions, update code snippet titles * Update CODEOWNERS (#7014) * updated steps for extending components in code (#6827) Co-authored-by: Aditya Shahani * Custom business logic support as of March @beta (#7019) * Enhanced custom business logic DX * addressed tim's comments * Added custom subscription configuration worfklow * removed in-development areas * added titles * added links for deep dive material * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx * added client method for clarity. * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Apply suggestions from code review Co-authored-by: josef --------- Co-authored-by: josef Co-authored-by: Kethan sai * add storage trigger docs (#7020) * storage trigger docs * Apply suggestions from code review Co-authored-by: josef * add storage access actions --------- Co-authored-by: josef * update link checker to wait for each call to complete before making t… (#6993) * update link checker to wait for each call to complete before making the next and remove # from urls being checked * update logging to show how many links found on each page * Update tasks/link-checker.js --------- Co-authored-by: Jacob Logan Co-authored-by: katiegoines Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * custom examples (#6979) * custom examples * fix: broken link, missing / at start (#7026) Co-authored-by: katiegoines * validate and fix code snippets in Data section (#6975) * Update sandbox --dir-to-watch description (#7031) * Update index.mdx (#7035) * Fix link (#7028) * add docs to auth resource access pattern (#7032) * fix: type platform as optional in Breadcrumbs component & add unit tests (#6912) * platform typed as optional * chore: add unit tests for Breadcrumbs * testing to include platform optional * fix: type platform as optional * add tests for override values --------- Co-authored-by: katiegoines * fix: proper variable naming conventions for storage (#7033) fix: proper variable naming conventions for storage * remove explicit file extension from gen2 imports (#6946) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix: Update diff code blocks to TypeScript with code highlights (#6905) * add docs on granting defineFunction access to defineData (#7029) * standardize Gen 2 wording (#7036) * Update index.mdx (#6906) * Modify_Amplify_resources (#7018) * fix code snippets on read data page * code snippet updates * updated the code snippets * updated code snippets. * custom business page rollback * Update maplibre links (#7040) * chore: add unit tests for PlatformNavigator (#6980) * chore: add unit tests for PlatformNavigator * add code coverage * simplify * simplify --------- Co-authored-by: katiegoines * Update links to expo docs (#7044) * Update links to expo docs * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef --------- Co-authored-by: josef * chore: add unit tests for InternalLinkButton (#7000) Co-authored-by: katiegoines * chore: add addtl unit test for Block component (#6982) * chore: add addtl unit test for Block component * add code coverage stats * remove superfluous Block component --------- Co-authored-by: katiegoines * chore: add unit tests for TOC (#6984) * chore: add unit tests for TOC * add code coverage * hardcode expected hash --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLink (#6915) * chore: add unit tests for ExternalLink * fixing tracking test --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLinkButton (#6914) * chore: add unit tests for ExternalLinkButton * Update ExternalLinkButton.test.tsx triggering checks --------- Co-authored-by: katiegoines * chore: add unit tests for Footer component (#6999) Co-authored-by: katiegoines * chore: add unit tests for MigrationAlert component (#7004) * chore: add unit tests for MigrationAlert component * chore: add unit tests for MigrationAlert component --------- Co-authored-by: katiegoines * chore: add unit test for Overview component (#7002) Co-authored-by: katiegoines * chore: upgrade docsearch/react to 3.6 (#7046) * added utility type content (#7047) * chore: add unit tests for PageLastUpdated (#7001) Co-authored-by: katiegoines * chore: add unit tests for Commands and Columns (#6916) * chore: add unit test for CLICommands * chore: add unit test for Columns * Update Command.test.tsx triggering checks --------- Co-authored-by: katiegoines * Update resolution for follow-redirects (#7055) * Update relative urls (#7048) * Update relative urls * Update url * Updating link checker (#7052) * Updating link checker to account for duplicate urls from different pages and link text * Update slack formatting * Remove console.log * Add comments to function * Remove extra console.logs() * chore: update redirects list (#6969) * update redirects * updated redirects --------- Co-authored-by: katiegoines * remove allowlist role names for appsync console access page (#7081) * Add JavaScript resolver code sample to Gen 1 (#7087) * fix(JS): Update v5 JS libraries installation guides. (#7090) * fix(v5): update aws-amplify v5 dependency * chore: remove extra '0' number from versions * chore: remove vue2 block * chore: update version reference * Cbonif/field-level-auth-support-for-sql (#7091) * chore(gen2-data): update .secondaryIndexes example to match the latest interface (#7095) * update setup auth client example with correct props (#7106) * update auth with correct props * Change generated function env package name (#7096) * Update typo in url for localhost (#7110) * update next config to use a static build Id (#7102) Co-authored-by: Jacob Logan * chore: Add callout on Analytics buffer persistence in Amplify JS (#7115) * chore: Add callout on Analytics buffer persistence in Amplify JS. * PR feedback. * Custom subscription docs to Gen 2 (#7120) * Add playsInline to videos (#7125) * autoSignIn position correction in v6 migration docs (#7059) * fix(next-release/main): update home page h1 and code block font size (#7117) (#7126) * update font sizes * add text-size-adjust * add webkit prefix, add comment * update text-size-adjust fix --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * remove parenthesis from "Amplify (Gen 2)" (#7113) * change "NPM" to "npm" (#7112) * remove explicit ".js" extension from gen2 resource imports (#7134) * remove leading slash from storage access paths (#7116) * remove unnecessary "Angular" mention in auth getting started (#7139) Removed 'Angular' from the app description. It is not necessarily an angular app. * Gen 2 Quickstart: Fix amplify console link (#7141) * fix amplify console link * fix text from AWS Console to Amplify Console * updated alt text for Amplify console * Update src/fragments/gen2/quickstart/deploy-and-host.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Update src/pages/gen2/deploy-and-host/fullstack-branching/branch-deployments/index.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> --------- Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Add Favicon and apple-touch icons to root (#7137) * add 96x96 favicons * add favicon and apple-touch to root * updated icons --------- Co-authored-by: Jacob Logan * docs(migration): fixes mislabeling notification enable snippet (#7135) the v5 snippet was labeled as v6 and the v6 was labeled as v5 Co-authored-by: derrik.fleming * edits to custom business logic (#7129) * remove console.log (#7147) * fix: copied code no longer includes markdown comments (#7146) * fix: copied code no longer includes markdown comments * minor cleanup * splite prepareCopyText to it's own export for easier testing * fix MDXCode mock * chore(react-native): Add callouts for dropped Expo Go support (#7160) * Update index.mdx (#7165) * Update github link to maplibre repo (#7162) * remove gen2 pages added --------- Co-authored-by: Jim Eagan <84857865+hibler13@users.noreply.github.com> Co-authored-by: Kevin Old Co-authored-by: Jim Blanchard Co-authored-by: Ankit Shah <22114629+ankpshah@users.noreply.github.com> Co-authored-by: katiegoines Co-authored-by: Dan Kiuna Co-authored-by: Kihara, Takuya Co-authored-by: Tyler Roach Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: Rene Brandel <4989523+renebrandel@users.noreply.github.com> Co-authored-by: Elijah Quartey Co-authored-by: Heather Buchel Co-authored-by: John Corser Co-authored-by: Heather Pundt <119376175+heatheramz@users.noreply.github.com> Co-authored-by: Nikhil Swaminathan <2429410+swaminator@users.noreply.github.com> Co-authored-by: Jay Raval Co-authored-by: David McAfee Co-authored-by: Kethan sai Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: erinleigh90 <106691284+erinleigh90@users.noreply.github.com> Co-authored-by: Edward Foyle Co-authored-by: Adi <34354177+the1adi@users.noreply.github.com> Co-authored-by: Aditya Shahani Co-authored-by: josef Co-authored-by: jacoblogan Co-authored-by: Jacob Logan Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> Co-authored-by: Chris Bonifacio Co-authored-by: Roshane Pascual Co-authored-by: Charles Shin Co-authored-by: Ujjwol Shrestha Co-authored-by: Gen Tamura Co-authored-by: dwittle <72715628+dwittle@users.noreply.github.com> Co-authored-by: Anil Maktala Co-authored-by: israx <70438514+israx@users.noreply.github.com> Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Co-authored-by: Nairi Areg <51801223+NairiAreg@users.noreply.github.com> Co-authored-by: spivakov83 Co-authored-by: Harshita Daddala Co-authored-by: derrik Co-authored-by: derrik.fleming Co-authored-by: Chris F <5827964+cshfang@users.noreply.github.com> * chore: weekly merge of `next-release/dev` into `next-release/main` (#7175) * build UI additions * updates to option 1 qs vite * updated option 2 * added titles * added language to clarify * chore: merging `next-release/main` into `next-release/dev` (#7174) * Minor edits to Vite + React quickstart (#6926) * Updates to Vite + React quickstart * Update src/fragments/gen2/quickstart/build-a-backend.mdx Co-authored-by: Kevin Old * Update build-a-backend.mdx * Update build-a-backend.mdx * Update build-a-backend.mdx --------- Co-authored-by: Kevin Old * fix: Fix incorrect auth import path in migration guide. (#6934) * fix: Update incorrect `updateMFAPreference` parameter in JS v6 migration guide. (#6935) * Amplify Android Release 2.14.11 (#6933) * chore: refactor .layout-header into separate component (#6826) * platform typed as optional * refactor init * remove commented code * remove angry useEffect * fix typing * added layoutcontext so mobile menu closes on navigation * move import --------- Co-authored-by: katiegoines * fix: Nesting of auth cli templates (#6932) * fix: change config variable name (#6923) * Guide to support Amplify v2 with AWS Android SDK (#6927) * Update puppeteer (#6949) * Update index.mdx (#6950) * Update CODEOWNERS with correct PM alignment (#6951) * fix(flutter, js): scope "connect existing cdk" guide to respective platform (#6947) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Revert "fix(flutter, js): scope "connect existing cdk" guide to respective pl…" (#6955) This reverts commit 5998b22f18cada98ba7c6d1f35c3f6b378637476. * chore: remove duplicated logic between Layout and LayoutHeader (#6954) * chore: more layout refactoring * remove unused prop, alphabetize props * improve oauth docs (#6961) * fixed gen 2 getting started guide (#6968) * Update redirects for deleted hidden pages (#6944) * Update manual installation to point to @beta tag (#6972) * include usage for multi-page apps (#6964) * include usage for multi-page apps * improve multi-page app docs * use Hub syntax * update imports in examples * chore: Clean up broken Amplify JS API reference links (#6976) * chore: Clean up broken Amplify JS API reference links. * Cleaned up language. * Update build image instructions for Gen 2 (#6978) * update build image settings for Gen 2 * remove callout and add fragment to vite guide * chore: add unit test for YoutubeEmbed component (#6983) * chore: add unit test for YoutubeEmbed component * add code coverage stats --------- Co-authored-by: katiegoines * chore: add unit tests for Accordion component (#6981) * chore: add unit tests for Accordion component * issue with window properties * fixed tracking test * working on animation issue * accordion tests * fix testing errors * added test for closing accordion * add code coverage stats --------- Co-authored-by: katiegoines * Update index.mdx (#6986) * Add env variables for algolia (#6957) * Add algolia env vars to next.config * Remove extra code string * fix(data): update REST API docs to document correct error response type (#6989) * fix(data): update React Native minimum iOS deployment target guidance; add build step to docs (#6970) * fix(data): update React Native minimum iOS deployment target; add build step to docs * address PR feedback * remove deployment target guidance * add React Native version deployment target callout * fix unrecognized syntax * replace callout with accordion * move 'upgrading' callout * Clarify behavior of forgetDevice() API regarding device tracking (#6985) * Clarify behavior of forgetDevice() API regarding device tracking This commit updates the documentation to clarify that using the forgetDevice() API results in the device being neither remembered nor tracked. Previously, the documentation suggested that forgotten devices might still be tracked, leading to confusion about the API's behavior. The revised wording aligns with the detailed description under the "Forgotten" section, ensuring consistency and eliminating ambiguity about how forgotten devices are handled. * Clarify behavior of forgetDevice() API regarding device tracking * Support for enum value listing (#6885) * Support for enum value listing * Update src/pages/gen2/build-a-backend/data/data-modeling/add-fields/index.mdx * CDK updates v2 (#6990) * Add padding to bottom of nav menu (#6991) * Adding secondary index to Gen 2 (#6996) * Adding secondary index docs * fixed some formatting for custom query fields * extend config to show addOuput (#6963) * extend config * modify wording * modify example * improve wording * Update index.mdx (#6995) * Update index.mdx * add guest access support to docs * chore: add unit tests for NextPrevious component (#7003) Co-authored-by: katiegoines * chore: add unit tests for LinkCards and LinkCard components (#7006) Co-authored-by: katiegoines * chore: add unit tests for GetStartedPopover component (#7005) Co-authored-by: katiegoines * fix: [Storage] Configure Access (#6948) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix(Swift): update data use policy info's tracking to false (#6938) * fix(Swift): update data use policy info's tracking to false * Update data-information.mdx * chore: add callouts and troubleshooting guide for configuration (#6967) * fix: resolve in-content broken links (#7011) * re-platforming * remove reference to mocking and testing for android & swift * remove reference to mocking and testing for android & swift * filtered out reference to optimistic ui for react native --------- Co-authored-by: katiegoines * update gen2 storage and function docs (#7009) * update gen2 storage and function docs * add resource access links and example * revisions, update code snippet titles * Update CODEOWNERS (#7014) * updated steps for extending components in code (#6827) Co-authored-by: Aditya Shahani * Custom business logic support as of March @beta (#7019) * Enhanced custom business logic DX * addressed tim's comments * Added custom subscription configuration worfklow * removed in-development areas * added titles * added links for deep dive material * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx * added client method for clarity. * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Apply suggestions from code review Co-authored-by: josef --------- Co-authored-by: josef Co-authored-by: Kethan sai * add storage trigger docs (#7020) * storage trigger docs * Apply suggestions from code review Co-authored-by: josef * add storage access actions --------- Co-authored-by: josef * update link checker to wait for each call to complete before making t… (#6993) * update link checker to wait for each call to complete before making the next and remove # from urls being checked * update logging to show how many links found on each page * Update tasks/link-checker.js --------- Co-authored-by: Jacob Logan Co-authored-by: katiegoines Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * custom examples (#6979) * custom examples * fix: broken link, missing / at start (#7026) Co-authored-by: katiegoines * validate and fix code snippets in Data section (#6975) * Update sandbox --dir-to-watch description (#7031) * Update index.mdx (#7035) * Fix link (#7028) * add docs to auth resource access pattern (#7032) * fix: type platform as optional in Breadcrumbs component & add unit tests (#6912) * platform typed as optional * chore: add unit tests for Breadcrumbs * testing to include platform optional * fix: type platform as optional * add tests for override values --------- Co-authored-by: katiegoines * fix: proper variable naming conventions for storage (#7033) fix: proper variable naming conventions for storage * remove explicit file extension from gen2 imports (#6946) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix: Update diff code blocks to TypeScript with code highlights (#6905) * add docs on granting defineFunction access to defineData (#7029) * standardize Gen 2 wording (#7036) * Update index.mdx (#6906) * Modify_Amplify_resources (#7018) * fix code snippets on read data page * code snippet updates * updated the code snippets * updated code snippets. * custom business page rollback * Update maplibre links (#7040) * chore: add unit tests for PlatformNavigator (#6980) * chore: add unit tests for PlatformNavigator * add code coverage * simplify * simplify --------- Co-authored-by: katiegoines * Update links to expo docs (#7044) * Update links to expo docs * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef --------- Co-authored-by: josef * chore: add unit tests for InternalLinkButton (#7000) Co-authored-by: katiegoines * chore: add addtl unit test for Block component (#6982) * chore: add addtl unit test for Block component * add code coverage stats * remove superfluous Block component --------- Co-authored-by: katiegoines * chore: add unit tests for TOC (#6984) * chore: add unit tests for TOC * add code coverage * hardcode expected hash --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLink (#6915) * chore: add unit tests for ExternalLink * fixing tracking test --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLinkButton (#6914) * chore: add unit tests for ExternalLinkButton * Update ExternalLinkButton.test.tsx triggering checks --------- Co-authored-by: katiegoines * chore: add unit tests for Footer component (#6999) Co-authored-by: katiegoines * chore: add unit tests for MigrationAlert component (#7004) * chore: add unit tests for MigrationAlert component * chore: add unit tests for MigrationAlert component --------- Co-authored-by: katiegoines * chore: add unit test for Overview component (#7002) Co-authored-by: katiegoines * chore: upgrade docsearch/react to 3.6 (#7046) * added utility type content (#7047) * chore: add unit tests for PageLastUpdated (#7001) Co-authored-by: katiegoines * chore: add unit tests for Commands and Columns (#6916) * chore: add unit test for CLICommands * chore: add unit test for Columns * Update Command.test.tsx triggering checks --------- Co-authored-by: katiegoines * Update resolution for follow-redirects (#7055) * Update relative urls (#7048) * Update relative urls * Update url * Updating link checker (#7052) * Updating link checker to account for duplicate urls from different pages and link text * Update slack formatting * Remove console.log * Add comments to function * Remove extra console.logs() * chore: update redirects list (#6969) * update redirects * updated redirects --------- Co-authored-by: katiegoines * remove allowlist role names for appsync console access page (#7081) * Add JavaScript resolver code sample to Gen 1 (#7087) * fix(JS): Update v5 JS libraries installation guides. (#7090) * fix(v5): update aws-amplify v5 dependency * chore: remove extra '0' number from versions * chore: remove vue2 block * chore: update version reference * Cbonif/field-level-auth-support-for-sql (#7091) * chore(gen2-data): update .secondaryIndexes example to match the latest interface (#7095) * update setup auth client example with correct props (#7106) * update auth with correct props * Change generated function env package name (#7096) * Update typo in url for localhost (#7110) * update next config to use a static build Id (#7102) Co-authored-by: Jacob Logan * chore: Add callout on Analytics buffer persistence in Amplify JS (#7115) * chore: Add callout on Analytics buffer persistence in Amplify JS. * PR feedback. * Custom subscription docs to Gen 2 (#7120) * Add playsInline to videos (#7125) * autoSignIn position correction in v6 migration docs (#7059) * fix(next-release/main): update home page h1 and code block font size (#7117) (#7126) * update font sizes * add text-size-adjust * add webkit prefix, add comment * update text-size-adjust fix --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * remove parenthesis from "Amplify (Gen 2)" (#7113) * change "NPM" to "npm" (#7112) * remove explicit ".js" extension from gen2 resource imports (#7134) * remove leading slash from storage access paths (#7116) * remove unnecessary "Angular" mention in auth getting started (#7139) Removed 'Angular' from the app description. It is not necessarily an angular app. * Gen 2 Quickstart: Fix amplify console link (#7141) * fix amplify console link * fix text from AWS Console to Amplify Console * updated alt text for Amplify console * Update src/fragments/gen2/quickstart/deploy-and-host.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Update src/pages/gen2/deploy-and-host/fullstack-branching/branch-deployments/index.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> --------- Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Add Favicon and apple-touch icons to root (#7137) * add 96x96 favicons * add favicon and apple-touch to root * updated icons --------- Co-authored-by: Jacob Logan * docs(migration): fixes mislabeling notification enable snippet (#7135) the v5 snippet was labeled as v6 and the v6 was labeled as v5 Co-authored-by: derrik.fleming * edits to custom business logic (#7129) * remove console.log (#7147) * fix: copied code no longer includes markdown comments (#7146) * fix: copied code no longer includes markdown comments * minor cleanup * splite prepareCopyText to it's own export for easier testing * fix MDXCode mock * chore(react-native): Add callouts for dropped Expo Go support (#7160) * Update index.mdx (#7165) * Update github link to maplibre repo (#7162) * Gen2 storage docs web (#7163) * add storage docs * add transfer acceleration documentation * fix spelling * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix links and add cors policy callout * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/copy-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/copy-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/lambda-triggers/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/index.mdx Co-authored-by: josef * add language in code snippets and change list files sidebar title * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: josef * Storage docs update (#7171) * update list files to get files * update extend S3 resources section * update options links for upload api * remove gen2 pages added * chore: merge `main` into `next-release/main` (#7173) * Minor edits to Vite + React quickstart (#6926) * Updates to Vite + React quickstart * Update src/fragments/gen2/quickstart/build-a-backend.mdx Co-authored-by: Kevin Old * Update build-a-backend.mdx * Update build-a-backend.mdx * Update build-a-backend.mdx --------- Co-authored-by: Kevin Old * fix: Fix incorrect auth import path in migration guide. (#6934) * fix: Update incorrect `updateMFAPreference` parameter in JS v6 migration guide. (#6935) * Amplify Android Release 2.14.11 (#6933) * chore: refactor .layout-header into separate component (#6826) * platform typed as optional * refactor init * remove commented code * remove angry useEffect * fix typing * added layoutcontext so mobile menu closes on navigation * move import --------- Co-authored-by: katiegoines * fix: Nesting of auth cli templates (#6932) * fix: change config variable name (#6923) * Guide to support Amplify v2 with AWS Android SDK (#6927) * Update puppeteer (#6949) * Update index.mdx (#6950) * Update CODEOWNERS with correct PM alignment (#6951) * fix(flutter, js): scope "connect existing cdk" guide to respective platform (#6947) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Revert "fix(flutter, js): scope "connect existing cdk" guide to respective pl…" (#6955) This reverts commit 5998b22f18cada98ba7c6d1f35c3f6b378637476. * chore: remove duplicated logic between Layout and LayoutHeader (#6954) * chore: more layout refactoring * remove unused prop, alphabetize props * improve oauth docs (#6961) * fixed gen 2 getting started guide (#6968) * Update redirects for deleted hidden pages (#6944) * Update manual installation to point to @beta tag (#6972) * include usage for multi-page apps (#6964) * include usage for multi-page apps * improve multi-page app docs * use Hub syntax * update imports in examples * chore: Clean up broken Amplify JS API reference links (#6976) * chore: Clean up broken Amplify JS API reference links. * Cleaned up language. * Update build image instructions for Gen 2 (#6978) * update build image settings for Gen 2 * remove callout and add fragment to vite guide * chore: add unit test for YoutubeEmbed component (#6983) * chore: add unit test for YoutubeEmbed component * add code coverage stats --------- Co-authored-by: katiegoines * chore: add unit tests for Accordion component (#6981) * chore: add unit tests for Accordion component * issue with window properties * fixed tracking test * working on animation issue * accordion tests * fix testing errors * added test for closing accordion * add code coverage stats --------- Co-authored-by: katiegoines * Update index.mdx (#6986) * Add env variables for algolia (#6957) * Add algolia env vars to next.config * Remove extra code string * fix(data): update REST API docs to document correct error response type (#6989) * fix(data): update React Native minimum iOS deployment target guidance; add build step to docs (#6970) * fix(data): update React Native minimum iOS deployment target; add build step to docs * address PR feedback * remove deployment target guidance * add React Native version deployment target callout * fix unrecognized syntax * replace callout with accordion * move 'upgrading' callout * Clarify behavior of forgetDevice() API regarding device tracking (#6985) * Clarify behavior of forgetDevice() API regarding device tracking This commit updates the documentation to clarify that using the forgetDevice() API results in the device being neither remembered nor tracked. Previously, the documentation suggested that forgotten devices might still be tracked, leading to confusion about the API's behavior. The revised wording aligns with the detailed description under the "Forgotten" section, ensuring consistency and eliminating ambiguity about how forgotten devices are handled. * Clarify behavior of forgetDevice() API regarding device tracking * Support for enum value listing (#6885) * Support for enum value listing * Update src/pages/gen2/build-a-backend/data/data-modeling/add-fields/index.mdx * CDK updates v2 (#6990) * Add padding to bottom of nav menu (#6991) * Adding secondary index to Gen 2 (#6996) * Adding secondary index docs * fixed some formatting for custom query fields * extend config to show addOuput (#6963) * extend config * modify wording * modify example * improve wording * Update index.mdx (#6995) * Update index.mdx * add guest access support to docs * chore: add unit tests for NextPrevious component (#7003) Co-authored-by: katiegoines * chore: add unit tests for LinkCards and LinkCard components (#7006) Co-authored-by: katiegoines * chore: add unit tests for GetStartedPopover component (#7005) Co-authored-by: katiegoines * fix: [Storage] Configure Access (#6948) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix(Swift): update data use policy info's tracking to false (#6938) * fix(Swift): update data use policy info's tracking to false * Update data-information.mdx * chore: add callouts and troubleshooting guide for configuration (#6967) * fix: resolve in-content broken links (#7011) * re-platforming * remove reference to mocking and testing for android & swift * remove reference to mocking and testing for android & swift * filtered out reference to optimistic ui for react native --------- Co-authored-by: katiegoines * update gen2 storage and function docs (#7009) * update gen2 storage and function docs * add resource access links and example * revisions, update code snippet titles * Update CODEOWNERS (#7014) * updated steps for extending components in code (#6827) Co-authored-by: Aditya Shahani * Custom business logic support as of March @beta (#7019) * Enhanced custom business logic DX * addressed tim's comments * Added custom subscription configuration worfklow * removed in-development areas * added titles * added links for deep dive material * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx * added client method for clarity. * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Apply suggestions from code review Co-authored-by: josef --------- Co-authored-by: josef Co-authored-by: Kethan sai * add storage trigger docs (#7020) * storage trigger docs * Apply suggestions from code review Co-authored-by: josef * add storage access actions --------- Co-authored-by: josef * update link checker to wait for each call to complete before making t… (#6993) * update link checker to wait for each call to complete before making the next and remove # from urls being checked * update logging to show how many links found on each page * Update tasks/link-checker.js --------- Co-authored-by: Jacob Logan Co-authored-by: katiegoines Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * custom examples (#6979) * custom examples * fix: broken link, missing / at start (#7026) Co-authored-by: katiegoines * validate and fix code snippets in Data section (#6975) * Update sandbox --dir-to-watch description (#7031) * Update index.mdx (#7035) * Fix link (#7028) * add docs to auth resource access pattern (#7032) * fix: type platform as optional in Breadcrumbs component & add unit tests (#6912) * platform typed as optional * chore: add unit tests for Breadcrumbs * testing to include platform optional * fix: type platform as optional * add tests for override values --------- Co-authored-by: katiegoines * fix: proper variable naming conventions for storage (#7033) fix: proper variable naming conventions for storage * remove explicit file extension from gen2 imports (#6946) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix: Update diff code blocks to TypeScript with code highlights (#6905) * add docs on granting defineFunction access to defineData (#7029) * standardize Gen 2 wording (#7036) * Update index.mdx (#6906) * Modify_Amplify_resources (#7018) * fix code snippets on read data page * code snippet updates * updated the code snippets * updated code snippets. * custom business page rollback * Update maplibre links (#7040) * chore: add unit tests for PlatformNavigator (#6980) * chore: add unit tests for PlatformNavigator * add code coverage * simplify * simplify --------- Co-authored-by: katiegoines * Update links to expo docs (#7044) * Update links to expo docs * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef --------- Co-authored-by: josef * chore: add unit tests for InternalLinkButton (#7000) Co-authored-by: katiegoines * chore: add addtl unit test for Block component (#6982) * chore: add addtl unit test for Block component * add code coverage stats * remove superfluous Block component --------- Co-authored-by: katiegoines * chore: add unit tests for TOC (#6984) * chore: add unit tests for TOC * add code coverage * hardcode expected hash --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLink (#6915) * chore: add unit tests for ExternalLink * fixing tracking test --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLinkButton (#6914) * chore: add unit tests for ExternalLinkButton * Update ExternalLinkButton.test.tsx triggering checks --------- Co-authored-by: katiegoines * chore: add unit tests for Footer component (#6999) Co-authored-by: katiegoines * chore: add unit tests for MigrationAlert component (#7004) * chore: add unit tests for MigrationAlert component * chore: add unit tests for MigrationAlert component --------- Co-authored-by: katiegoines * chore: add unit test for Overview component (#7002) Co-authored-by: katiegoines * chore: upgrade docsearch/react to 3.6 (#7046) * added utility type content (#7047) * chore: add unit tests for PageLastUpdated (#7001) Co-authored-by: katiegoines * chore: add unit tests for Commands and Columns (#6916) * chore: add unit test for CLICommands * chore: add unit test for Columns * Update Command.test.tsx triggering checks --------- Co-authored-by: katiegoines * Update resolution for follow-redirects (#7055) * Update relative urls (#7048) * Update relative urls * Update url * Updating link checker (#7052) * Updating link checker to account for duplicate urls from different pages and link text * Update slack formatting * Remove console.log * Add comments to function * Remove extra console.logs() * chore: update redirects list (#6969) * update redirects * updated redirects --------- Co-authored-by: katiegoines * remove allowlist role names for appsync console access page (#7081) * Add JavaScript resolver code sample to Gen 1 (#7087) * fix(JS): Update v5 JS libraries installation guides. (#7090) * fix(v5): update aws-amplify v5 dependency * chore: remove extra '0' number from versions * chore: remove vue2 block * chore: update version reference * Cbonif/field-level-auth-support-for-sql (#7091) * chore(gen2-data): update .secondaryIndexes example to match the latest interface (#7095) * update setup auth client example with correct props (#7106) * update auth with correct props * Change generated function env package name (#7096) * Update typo in url for localhost (#7110) * update next config to use a static build Id (#7102) Co-authored-by: Jacob Logan * chore: Add callout on Analytics buffer persistence in Amplify JS (#7115) * chore: Add callout on Analytics buffer persistence in Amplify JS. * PR feedback. * Custom subscription docs to Gen 2 (#7120) * Add playsInline to videos (#7125) * autoSignIn position correction in v6 migration docs (#7059) * fix(next-release/main): update home page h1 and code block font size (#7117) (#7126) * update font sizes * add text-size-adjust * add webkit prefix, add comment * update text-size-adjust fix --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * remove parenthesis from "Amplify (Gen 2)" (#7113) * change "NPM" to "npm" (#7112) * remove explicit ".js" extension from gen2 resource imports (#7134) * remove leading slash from storage access paths (#7116) * remove unnecessary "Angular" mention in auth getting started (#7139) Removed 'Angular' from the app description. It is not necessarily an angular app. * Gen 2 Quickstart: Fix amplify console link (#7141) * fix amplify console link * fix text from AWS Console to Amplify Console * updated alt text for Amplify console * Update src/fragments/gen2/quickstart/deploy-and-host.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Update src/pages/gen2/deploy-and-host/fullstack-branching/branch-deployments/index.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> --------- Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Add Favicon and apple-touch icons to root (#7137) * add 96x96 favicons * add favicon and apple-touch to root * updated icons --------- Co-authored-by: Jacob Logan * docs(migration): fixes mislabeling notification enable snippet (#7135) the v5 snippet was labeled as v6 and the v6 was labeled as v5 Co-authored-by: derrik.fleming * edits to custom business logic (#7129) * remove console.log (#7147) * fix: copied code no longer includes markdown comments (#7146) * fix: copied code no longer includes markdown comments * minor cleanup * splite prepareCopyText to it's own export for easier testing * fix MDXCode mock * chore(react-native): Add callouts for dropped Expo Go support (#7160) * Update index.mdx (#7165) * Update github link to maplibre repo (#7162) * remove gen2 pages added --------- Co-authored-by: Jim Eagan <84857865+hibler13@users.noreply.github.com> Co-authored-by: Kevin Old Co-authored-by: Jim Blanchard Co-authored-by: Ankit Shah <22114629+ankpshah@users.noreply.github.com> Co-authored-by: katiegoines Co-authored-by: Dan Kiuna Co-authored-by: Kihara, Takuya Co-authored-by: Tyler Roach Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: Rene Brandel <4989523+renebrandel@users.noreply.github.com> Co-authored-by: Elijah Quartey Co-authored-by: Heather Buchel Co-authored-by: John Corser Co-authored-by: Heather Pundt <119376175+heatheramz@users.noreply.github.com> Co-authored-by: Nikhil Swaminathan <2429410+swaminator@users.noreply.github.com> Co-authored-by: Jay Raval Co-authored-by: David McAfee Co-authored-by: Kethan sai Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: erinleigh90 <106691284+erinleigh90@users.noreply.github.com> Co-authored-by: Edward Foyle Co-authored-by: Adi <34354177+the1adi@users.noreply.github.com> Co-authored-by: Aditya Shahani Co-authored-by: josef Co-authored-by: jacoblogan Co-authored-by: Jacob Logan Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> Co-authored-by: Chris Bonifacio Co-authored-by: Roshane Pascual Co-authored-by: Charles Shin Co-authored-by: Ujjwol Shrestha Co-authored-by: Gen Tamura Co-authored-by: dwittle <72715628+dwittle@users.noreply.github.com> Co-authored-by: Anil Maktala Co-authored-by: israx <70438514+israx@users.noreply.github.com> Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Co-authored-by: Nairi Areg <51801223+NairiAreg@users.noreply.github.com> Co-authored-by: spivakov83 Co-authored-by: Harshita Daddala Co-authored-by: derrik Co-authored-by: derrik.fleming Co-authored-by: Chris F <5827964+cshfang@users.noreply.github.com> --------- Co-authored-by: Jim Eagan <84857865+hibler13@users.noreply.github.com> Co-authored-by: Kevin Old Co-authored-by: Jim Blanchard Co-authored-by: Ankit Shah <22114629+ankpshah@users.noreply.github.com> Co-authored-by: katiegoines Co-authored-by: Dan Kiuna Co-authored-by: Kihara, Takuya Co-authored-by: Tyler Roach Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: Rene Brandel <4989523+renebrandel@users.noreply.github.com> Co-authored-by: Elijah Quartey Co-authored-by: Heather Buchel Co-authored-by: John Corser Co-authored-by: Heather Pundt <119376175+heatheramz@users.noreply.github.com> Co-authored-by: Nikhil Swaminathan <2429410+swaminator@users.noreply.github.com> Co-authored-by: Jay Raval Co-authored-by: David McAfee Co-authored-by: Kethan sai Co-authored-by: Michael Law <1365977+lawmicha@use… * chore: merging `next-release/main` into `next-release/dev` (#7211) * Gen2 storage docs web (#7163) * add storage docs * add transfer acceleration documentation * fix spelling * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix links and add cors policy callout * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/copy-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/copy-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/lambda-triggers/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/index.mdx Co-authored-by: josef * add language in code snippets and change list files sidebar title * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: josef * Storage docs update (#7171) * update list files to get files * update extend S3 resources section * update options links for upload api * chore: merge `main` into `next-release/main` (#7173) * Minor edits to Vite + React quickstart (#6926) * Updates to Vite + React quickstart * Update src/fragments/gen2/quickstart/build-a-backend.mdx Co-authored-by: Kevin Old * Update build-a-backend.mdx * Update build-a-backend.mdx * Update build-a-backend.mdx --------- Co-authored-by: Kevin Old * fix: Fix incorrect auth import path in migration guide. (#6934) * fix: Update incorrect `updateMFAPreference` parameter in JS v6 migration guide. (#6935) * Amplify Android Release 2.14.11 (#6933) * chore: refactor .layout-header into separate component (#6826) * platform typed as optional * refactor init * remove commented code * remove angry useEffect * fix typing * added layoutcontext so mobile menu closes on navigation * move import --------- Co-authored-by: katiegoines * fix: Nesting of auth cli templates (#6932) * fix: change config variable name (#6923) * Guide to support Amplify v2 with AWS Android SDK (#6927) * Update puppeteer (#6949) * Update index.mdx (#6950) * Update CODEOWNERS with correct PM alignment (#6951) * fix(flutter, js): scope "connect existing cdk" guide to respective platform (#6947) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Revert "fix(flutter, js): scope "connect existing cdk" guide to respective pl…" (#6955) This reverts commit 5998b22f18cada98ba7c6d1f35c3f6b378637476. * chore: remove duplicated logic between Layout and LayoutHeader (#6954) * chore: more layout refactoring * remove unused prop, alphabetize props * improve oauth docs (#6961) * fixed gen 2 getting started guide (#6968) * Update redirects for deleted hidden pages (#6944) * Update manual installation to point to @beta tag (#6972) * include usage for multi-page apps (#6964) * include usage for multi-page apps * improve multi-page app docs * use Hub syntax * update imports in examples * chore: Clean up broken Amplify JS API reference links (#6976) * chore: Clean up broken Amplify JS API reference links. * Cleaned up language. * Update build image instructions for Gen 2 (#6978) * update build image settings for Gen 2 * remove callout and add fragment to vite guide * chore: add unit test for YoutubeEmbed component (#6983) * chore: add unit test for YoutubeEmbed component * add code coverage stats --------- Co-authored-by: katiegoines * chore: add unit tests for Accordion component (#6981) * chore: add unit tests for Accordion component * issue with window properties * fixed tracking test * working on animation issue * accordion tests * fix testing errors * added test for closing accordion * add code coverage stats --------- Co-authored-by: katiegoines * Update index.mdx (#6986) * Add env variables for algolia (#6957) * Add algolia env vars to next.config * Remove extra code string * fix(data): update REST API docs to document correct error response type (#6989) * fix(data): update React Native minimum iOS deployment target guidance; add build step to docs (#6970) * fix(data): update React Native minimum iOS deployment target; add build step to docs * address PR feedback * remove deployment target guidance * add React Native version deployment target callout * fix unrecognized syntax * replace callout with accordion * move 'upgrading' callout * Clarify behavior of forgetDevice() API regarding device tracking (#6985) * Clarify behavior of forgetDevice() API regarding device tracking This commit updates the documentation to clarify that using the forgetDevice() API results in the device being neither remembered nor tracked. Previously, the documentation suggested that forgotten devices might still be tracked, leading to confusion about the API's behavior. The revised wording aligns with the detailed description under the "Forgotten" section, ensuring consistency and eliminating ambiguity about how forgotten devices are handled. * Clarify behavior of forgetDevice() API regarding device tracking * Support for enum value listing (#6885) * Support for enum value listing * Update src/pages/gen2/build-a-backend/data/data-modeling/add-fields/index.mdx * CDK updates v2 (#6990) * Add padding to bottom of nav menu (#6991) * Adding secondary index to Gen 2 (#6996) * Adding secondary index docs * fixed some formatting for custom query fields * extend config to show addOuput (#6963) * extend config * modify wording * modify example * improve wording * Update index.mdx (#6995) * Update index.mdx * add guest access support to docs * chore: add unit tests for NextPrevious component (#7003) Co-authored-by: katiegoines * chore: add unit tests for LinkCards and LinkCard components (#7006) Co-authored-by: katiegoines * chore: add unit tests for GetStartedPopover component (#7005) Co-authored-by: katiegoines * fix: [Storage] Configure Access (#6948) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix(Swift): update data use policy info's tracking to false (#6938) * fix(Swift): update data use policy info's tracking to false * Update data-information.mdx * chore: add callouts and troubleshooting guide for configuration (#6967) * fix: resolve in-content broken links (#7011) * re-platforming * remove reference to mocking and testing for android & swift * remove reference to mocking and testing for android & swift * filtered out reference to optimistic ui for react native --------- Co-authored-by: katiegoines * update gen2 storage and function docs (#7009) * update gen2 storage and function docs * add resource access links and example * revisions, update code snippet titles * Update CODEOWNERS (#7014) * updated steps for extending components in code (#6827) Co-authored-by: Aditya Shahani * Custom business logic support as of March @beta (#7019) * Enhanced custom business logic DX * addressed tim's comments * Added custom subscription configuration worfklow * removed in-development areas * added titles * added links for deep dive material * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx * added client method for clarity. * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Apply suggestions from code review Co-authored-by: josef --------- Co-authored-by: josef Co-authored-by: Kethan sai * add storage trigger docs (#7020) * storage trigger docs * Apply suggestions from code review Co-authored-by: josef * add storage access actions --------- Co-authored-by: josef * update link checker to wait for each call to complete before making t… (#6993) * update link checker to wait for each call to complete before making the next and remove # from urls being checked * update logging to show how many links found on each page * Update tasks/link-checker.js --------- Co-authored-by: Jacob Logan Co-authored-by: katiegoines Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * custom examples (#6979) * custom examples * fix: broken link, missing / at start (#7026) Co-authored-by: katiegoines * validate and fix code snippets in Data section (#6975) * Update sandbox --dir-to-watch description (#7031) * Update index.mdx (#7035) * Fix link (#7028) * add docs to auth resource access pattern (#7032) * fix: type platform as optional in Breadcrumbs component & add unit tests (#6912) * platform typed as optional * chore: add unit tests for Breadcrumbs * testing to include platform optional * fix: type platform as optional * add tests for override values --------- Co-authored-by: katiegoines * fix: proper variable naming conventions for storage (#7033) fix: proper variable naming conventions for storage * remove explicit file extension from gen2 imports (#6946) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix: Update diff code blocks to TypeScript with code highlights (#6905) * add docs on granting defineFunction access to defineData (#7029) * standardize Gen 2 wording (#7036) * Update index.mdx (#6906) * Modify_Amplify_resources (#7018) * fix code snippets on read data page * code snippet updates * updated the code snippets * updated code snippets. * custom business page rollback * Update maplibre links (#7040) * chore: add unit tests for PlatformNavigator (#6980) * chore: add unit tests for PlatformNavigator * add code coverage * simplify * simplify --------- Co-authored-by: katiegoines * Update links to expo docs (#7044) * Update links to expo docs * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef --------- Co-authored-by: josef * chore: add unit tests for InternalLinkButton (#7000) Co-authored-by: katiegoines * chore: add addtl unit test for Block component (#6982) * chore: add addtl unit test for Block component * add code coverage stats * remove superfluous Block component --------- Co-authored-by: katiegoines * chore: add unit tests for TOC (#6984) * chore: add unit tests for TOC * add code coverage * hardcode expected hash --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLink (#6915) * chore: add unit tests for ExternalLink * fixing tracking test --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLinkButton (#6914) * chore: add unit tests for ExternalLinkButton * Update ExternalLinkButton.test.tsx triggering checks --------- Co-authored-by: katiegoines * chore: add unit tests for Footer component (#6999) Co-authored-by: katiegoines * chore: add unit tests for MigrationAlert component (#7004) * chore: add unit tests for MigrationAlert component * chore: add unit tests for MigrationAlert component --------- Co-authored-by: katiegoines * chore: add unit test for Overview component (#7002) Co-authored-by: katiegoines * chore: upgrade docsearch/react to 3.6 (#7046) * added utility type content (#7047) * chore: add unit tests for PageLastUpdated (#7001) Co-authored-by: katiegoines * chore: add unit tests for Commands and Columns (#6916) * chore: add unit test for CLICommands * chore: add unit test for Columns * Update Command.test.tsx triggering checks --------- Co-authored-by: katiegoines * Update resolution for follow-redirects (#7055) * Update relative urls (#7048) * Update relative urls * Update url * Updating link checker (#7052) * Updating link checker to account for duplicate urls from different pages and link text * Update slack formatting * Remove console.log * Add comments to function * Remove extra console.logs() * chore: update redirects list (#6969) * update redirects * updated redirects --------- Co-authored-by: katiegoines * remove allowlist role names for appsync console access page (#7081) * Add JavaScript resolver code sample to Gen 1 (#7087) * fix(JS): Update v5 JS libraries installation guides. (#7090) * fix(v5): update aws-amplify v5 dependency * chore: remove extra '0' number from versions * chore: remove vue2 block * chore: update version reference * Cbonif/field-level-auth-support-for-sql (#7091) * chore(gen2-data): update .secondaryIndexes example to match the latest interface (#7095) * update setup auth client example with correct props (#7106) * update auth with correct props * Change generated function env package name (#7096) * Update typo in url for localhost (#7110) * update next config to use a static build Id (#7102) Co-authored-by: Jacob Logan * chore: Add callout on Analytics buffer persistence in Amplify JS (#7115) * chore: Add callout on Analytics buffer persistence in Amplify JS. * PR feedback. * Custom subscription docs to Gen 2 (#7120) * Add playsInline to videos (#7125) * autoSignIn position correction in v6 migration docs (#7059) * fix(next-release/main): update home page h1 and code block font size (#7117) (#7126) * update font sizes * add text-size-adjust * add webkit prefix, add comment * update text-size-adjust fix --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * remove parenthesis from "Amplify (Gen 2)" (#7113) * change "NPM" to "npm" (#7112) * remove explicit ".js" extension from gen2 resource imports (#7134) * remove leading slash from storage access paths (#7116) * remove unnecessary "Angular" mention in auth getting started (#7139) Removed 'Angular' from the app description. It is not necessarily an angular app. * Gen 2 Quickstart: Fix amplify console link (#7141) * fix amplify console link * fix text from AWS Console to Amplify Console * updated alt text for Amplify console * Update src/fragments/gen2/quickstart/deploy-and-host.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Update src/pages/gen2/deploy-and-host/fullstack-branching/branch-deployments/index.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> --------- Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Add Favicon and apple-touch icons to root (#7137) * add 96x96 favicons * add favicon and apple-touch to root * updated icons --------- Co-authored-by: Jacob Logan * docs(migration): fixes mislabeling notification enable snippet (#7135) the v5 snippet was labeled as v6 and the v6 was labeled as v5 Co-authored-by: derrik.fleming * edits to custom business logic (#7129) * remove console.log (#7147) * fix: copied code no longer includes markdown comments (#7146) * fix: copied code no longer includes markdown comments * minor cleanup * splite prepareCopyText to it's own export for easier testing * fix MDXCode mock * chore(react-native): Add callouts for dropped Expo Go support (#7160) * Update index.mdx (#7165) * Update github link to maplibre repo (#7162) * remove gen2 pages added --------- Co-authored-by: Jim Eagan <84857865+hibler13@users.noreply.github.com> Co-authored-by: Kevin Old Co-authored-by: Jim Blanchard Co-authored-by: Ankit Shah <22114629+ankpshah@users.noreply.github.com> Co-authored-by: katiegoines Co-authored-by: Dan Kiuna Co-authored-by: Kihara, Takuya Co-authored-by: Tyler Roach Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: Rene Brandel <4989523+renebrandel@users.noreply.github.com> Co-authored-by: Elijah Quartey Co-authored-by: Heather Buchel Co-authored-by: John Corser Co-authored-by: Heather Pundt <119376175+heatheramz@users.noreply.github.com> Co-authored-by: Nikhil Swaminathan <2429410+swaminator@users.noreply.github.com> Co-authored-by: Jay Raval Co-authored-by: David McAfee Co-authored-by: Kethan sai Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: erinleigh90 <106691284+erinleigh90@users.noreply.github.com> Co-authored-by: Edward Foyle Co-authored-by: Adi <34354177+the1adi@users.noreply.github.com> Co-authored-by: Aditya Shahani Co-authored-by: josef Co-authored-by: jacoblogan Co-authored-by: Jacob Logan Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> Co-authored-by: Chris Bonifacio Co-authored-by: Roshane Pascual Co-authored-by: Charles Shin Co-authored-by: Ujjwol Shrestha Co-authored-by: Gen Tamura Co-authored-by: dwittle <72715628+dwittle@users.noreply.github.com> Co-authored-by: Anil Maktala Co-authored-by: israx <70438514+israx@users.noreply.github.com> Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Co-authored-by: Nairi Areg <51801223+NairiAreg@users.noreply.github.com> Co-authored-by: spivakov83 Co-authored-by: Harshita Daddala Co-authored-by: derrik Co-authored-by: derrik.fleming Co-authored-by: Chris F <5827964+cshfang@users.noreply.github.com> * chore: weekly merge of `next-release/dev` into `next-release/main` (#7175) * build UI additions * updates to option 1 qs vite * updated option 2 * added titles * added language to clarify * chore: merging `next-release/main` into `next-release/dev` (#7174) * Minor edits to Vite + React quickstart (#6926) * Updates to Vite + React quickstart * Update src/fragments/gen2/quickstart/build-a-backend.mdx Co-authored-by: Kevin Old * Update build-a-backend.mdx * Update build-a-backend.mdx * Update build-a-backend.mdx --------- Co-authored-by: Kevin Old * fix: Fix incorrect auth import path in migration guide. (#6934) * fix: Update incorrect `updateMFAPreference` parameter in JS v6 migration guide. (#6935) * Amplify Android Release 2.14.11 (#6933) * chore: refactor .layout-header into separate component (#6826) * platform typed as optional * refactor init * remove commented code * remove angry useEffect * fix typing * added layoutcontext so mobile menu closes on navigation * move import --------- Co-authored-by: katiegoines * fix: Nesting of auth cli templates (#6932) * fix: change config variable name (#6923) * Guide to support Amplify v2 with AWS Android SDK (#6927) * Update puppeteer (#6949) * Update index.mdx (#6950) * Update CODEOWNERS with correct PM alignment (#6951) * fix(flutter, js): scope "connect existing cdk" guide to respective platform (#6947) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Revert "fix(flutter, js): scope "connect existing cdk" guide to respective pl…" (#6955) This reverts commit 5998b22f18cada98ba7c6d1f35c3f6b378637476. * chore: remove duplicated logic between Layout and LayoutHeader (#6954) * chore: more layout refactoring * remove unused prop, alphabetize props * improve oauth docs (#6961) * fixed gen 2 getting started guide (#6968) * Update redirects for deleted hidden pages (#6944) * Update manual installation to point to @beta tag (#6972) * include usage for multi-page apps (#6964) * include usage for multi-page apps * improve multi-page app docs * use Hub syntax * update imports in examples * chore: Clean up broken Amplify JS API reference links (#6976) * chore: Clean up broken Amplify JS API reference links. * Cleaned up language. * Update build image instructions for Gen 2 (#6978) * update build image settings for Gen 2 * remove callout and add fragment to vite guide * chore: add unit test for YoutubeEmbed component (#6983) * chore: add unit test for YoutubeEmbed component * add code coverage stats --------- Co-authored-by: katiegoines * chore: add unit tests for Accordion component (#6981) * chore: add unit tests for Accordion component * issue with window properties * fixed tracking test * working on animation issue * accordion tests * fix testing errors * added test for closing accordion * add code coverage stats --------- Co-authored-by: katiegoines * Update index.mdx (#6986) * Add env variables for algolia (#6957) * Add algolia env vars to next.config * Remove extra code string * fix(data): update REST API docs to document correct error response type (#6989) * fix(data): update React Native minimum iOS deployment target guidance; add build step to docs (#6970) * fix(data): update React Native minimum iOS deployment target; add build step to docs * address PR feedback * remove deployment target guidance * add React Native version deployment target callout * fix unrecognized syntax * replace callout with accordion * move 'upgrading' callout * Clarify behavior of forgetDevice() API regarding device tracking (#6985) * Clarify behavior of forgetDevice() API regarding device tracking This commit updates the documentation to clarify that using the forgetDevice() API results in the device being neither remembered nor tracked. Previously, the documentation suggested that forgotten devices might still be tracked, leading to confusion about the API's behavior. The revised wording aligns with the detailed description under the "Forgotten" section, ensuring consistency and eliminating ambiguity about how forgotten devices are handled. * Clarify behavior of forgetDevice() API regarding device tracking * Support for enum value listing (#6885) * Support for enum value listing * Update src/pages/gen2/build-a-backend/data/data-modeling/add-fields/index.mdx * CDK updates v2 (#6990) * Add padding to bottom of nav menu (#6991) * Adding secondary index to Gen 2 (#6996) * Adding secondary index docs * fixed some formatting for custom query fields * extend config to show addOuput (#6963) * extend config * modify wording * modify example * improve wording * Update index.mdx (#6995) * Update index.mdx * add guest access support to docs * chore: add unit tests for NextPrevious component (#7003) Co-authored-by: katiegoines * chore: add unit tests for LinkCards and LinkCard components (#7006) Co-authored-by: katiegoines * chore: add unit tests for GetStartedPopover component (#7005) Co-authored-by: katiegoines * fix: [Storage] Configure Access (#6948) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix(Swift): update data use policy info's tracking to false (#6938) * fix(Swift): update data use policy info's tracking to false * Update data-information.mdx * chore: add callouts and troubleshooting guide for configuration (#6967) * fix: resolve in-content broken links (#7011) * re-platforming * remove reference to mocking and testing for android & swift * remove reference to mocking and testing for android & swift * filtered out reference to optimistic ui for react native --------- Co-authored-by: katiegoines * update gen2 storage and function docs (#7009) * update gen2 storage and function docs * add resource access links and example * revisions, update code snippet titles * Update CODEOWNERS (#7014) * updated steps for extending components in code (#6827) Co-authored-by: Aditya Shahani * Custom business logic support as of March @beta (#7019) * Enhanced custom business logic DX * addressed tim's comments * Added custom subscription configuration worfklow * removed in-development areas * added titles * added links for deep dive material * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx * added client method for clarity. * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Apply suggestions from code review Co-authored-by: josef --------- Co-authored-by: josef Co-authored-by: Kethan sai * add storage trigger docs (#7020) * storage trigger docs * Apply suggestions from code review Co-authored-by: josef * add storage access actions --------- Co-authored-by: josef * update link checker to wait for each call to complete before making t… (#6993) * update link checker to wait for each call to complete before making the next and remove # from urls being checked * update logging to show how many links found on each page * Update tasks/link-checker.js --------- Co-authored-by: Jacob Logan Co-authored-by: katiegoines Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * custom examples (#6979) * custom examples * fix: broken link, missing / at start (#7026) Co-authored-by: katiegoines * validate and fix code snippets in Data section (#6975) * Update sandbox --dir-to-watch description (#7031) * Update index.mdx (#7035) * Fix link (#7028) * add docs to auth resource access pattern (#7032) * fix: type platform as optional in Breadcrumbs component & add unit tests (#6912) * platform typed as optional * chore: add unit tests for Breadcrumbs * testing to include platform optional * fix: type platform as optional * add tests for override values --------- Co-authored-by: katiegoines * fix: proper variable naming conventions for storage (#7033) fix: proper variable naming conventions for storage * remove explicit file extension from gen2 imports (#6946) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix: Update diff code blocks to TypeScript with code highlights (#6905) * add docs on granting defineFunction access to defineData (#7029) * standardize Gen 2 wording (#7036) * Update index.mdx (#6906) * Modify_Amplify_resources (#7018) * fix code snippets on read data page * code snippet updates * updated the code snippets * updated code snippets. * custom business page rollback * Update maplibre links (#7040) * chore: add unit tests for PlatformNavigator (#6980) * chore: add unit tests for PlatformNavigator * add code coverage * simplify * simplify --------- Co-authored-by: katiegoines * Update links to expo docs (#7044) * Update links to expo docs * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef --------- Co-authored-by: josef * chore: add unit tests for InternalLinkButton (#7000) Co-authored-by: katiegoines * chore: add addtl unit test for Block component (#6982) * chore: add addtl unit test for Block component * add code coverage stats * remove superfluous Block component --------- Co-authored-by: katiegoines * chore: add unit tests for TOC (#6984) * chore: add unit tests for TOC * add code coverage * hardcode expected hash --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLink (#6915) * chore: add unit tests for ExternalLink * fixing tracking test --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLinkButton (#6914) * chore: add unit tests for ExternalLinkButton * Update ExternalLinkButton.test.tsx triggering checks --------- Co-authored-by: katiegoines * chore: add unit tests for Footer component (#6999) Co-authored-by: katiegoines * chore: add unit tests for MigrationAlert component (#7004) * chore: add unit tests for MigrationAlert component * chore: add unit tests for MigrationAlert component --------- Co-authored-by: katiegoines * chore: add unit test for Overview component (#7002) Co-authored-by: katiegoines * chore: upgrade docsearch/react to 3.6 (#7046) * added utility type content (#7047) * chore: add unit tests for PageLastUpdated (#7001) Co-authored-by: katiegoines * chore: add unit tests for Commands and Columns (#6916) * chore: add unit test for CLICommands * chore: add unit test for Columns * Update Command.test.tsx triggering checks --------- Co-authored-by: katiegoines * Update resolution for follow-redirects (#7055) * Update relative urls (#7048) * Update relative urls * Update url * Updating link checker (#7052) * Updating link checker to account for duplicate urls from different pages and link text * Update slack formatting * Remove console.log * Add comments to function * Remove extra console.logs() * chore: update redirects list (#6969) * update redirects * updated redirects --------- Co-authored-by: katiegoines * remove allowlist role names for appsync console access page (#7081) * Add JavaScript resolver code sample to Gen 1 (#7087) * fix(JS): Update v5 JS libraries installation guides. (#7090) * fix(v5): update aws-amplify v5 dependency * chore: remove extra '0' number from versions * chore: remove vue2 block * chore: update version reference * Cbonif/field-level-auth-support-for-sql (#7091) * chore(gen2-data): update .secondaryIndexes example to match the latest interface (#7095) * update setup auth client example with correct props (#7106) * update auth with correct props * Change generated function env package name (#7096) * Update typo in url for localhost (#7110) * update next config to use a static build Id (#7102) Co-authored-by: Jacob Logan * chore: Add callout on Analytics buffer persistence in Amplify JS (#7115) * chore: Add callout on Analytics buffer persistence in Amplify JS. * PR feedback. * Custom subscription docs to Gen 2 (#7120) * Add playsInline to videos (#7125) * autoSignIn position correction in v6 migration docs (#7059) * fix(next-release/main): update home page h1 and code block font size (#7117) (#7126) * update font sizes * add text-size-adjust * add webkit prefix, add comment * update text-size-adjust fix --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * remove parenthesis from "Amplify (Gen 2)" (#7113) * change "NPM" to "npm" (#7112) * remove explicit ".js" extension from gen2 resource imports (#7134) * remove leading slash from storage access paths (#7116) * remove unnecessary "Angular" mention in auth getting started (#7139) Removed 'Angular' from the app description. It is not necessarily an angular app. * Gen 2 Quickstart: Fix amplify console link (#7141) * fix amplify console link * fix text from AWS Console to Amplify Console * updated alt text for Amplify console * Update src/fragments/gen2/quickstart/deploy-and-host.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Update src/pages/gen2/deploy-and-host/fullstack-branching/branch-deployments/index.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> --------- Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Add Favicon and apple-touch icons to root (#7137) * add 96x96 favicons * add favicon and apple-touch to root * updated icons --------- Co-authored-by: Jacob Logan * docs(migration): fixes mislabeling notification enable snippet (#7135) the v5 snippet was labeled as v6 and the v6 was labeled as v5 Co-authored-by: derrik.fleming * edits to custom business logic (#7129) * remove console.log (#7147) * fix: copied code no longer includes markdown comments (#7146) * fix: copied code no longer includes markdown comments * minor cleanup * splite prepareCopyText to it's own export for easier testing * fix MDXCode mock * chore(react-native): Add callouts for dropped Expo Go support (#7160) * Update index.mdx (#7165) * Update github link to maplibre repo (#7162) * Gen2 storage docs web (#7163) * add storage docs * add transfer acceleration documentation * fix spelling * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix links and add cors policy callout * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/copy-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/copy-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/define-storage/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/authorization/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/get-url/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/download-data/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/extend-with-cdk/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/lambda-triggers/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/download-files/index.mdx Co-authored-by: josef * add language in code snippets and change list files sidebar title * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/upload-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef * Update src/pages/[platform]/build-a-backend/storage/list-files/index.mdx Co-authored-by: josef --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: josef * Storage docs update (#7171) * update list files to get files * update extend S3 resources section * update options links for upload api * remove gen2 pages added * chore: merge `main` into `next-release/main` (#7173) * Minor edits to Vite + React quickstart (#6926) * Updates to Vite + React quickstart * Update src/fragments/gen2/quickstart/build-a-backend.mdx Co-authored-by: Kevin Old * Update build-a-backend.mdx * Update build-a-backend.mdx * Update build-a-backend.mdx --------- Co-authored-by: Kevin Old * fix: Fix incorrect auth import path in migration guide. (#6934) * fix: Update incorrect `updateMFAPreference` parameter in JS v6 migration guide. (#6935) * Amplify Android Release 2.14.11 (#6933) * chore: refactor .layout-header into separate component (#6826) * platform typed as optional * refactor init * remove commented code * remove angry useEffect * fix typing * added layoutcontext so mobile menu closes on navigation * move import --------- Co-authored-by: katiegoines * fix: Nesting of auth cli templates (#6932) * fix: change config variable name (#6923) * Guide to support Amplify v2 with AWS Android SDK (#6927) * Update puppeteer (#6949) * Update index.mdx (#6950) * Update CODEOWNERS with correct PM alignment (#6951) * fix(flutter, js): scope "connect existing cdk" guide to respective platform (#6947) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * Revert "fix(flutter, js): scope "connect existing cdk" guide to respective pl…" (#6955) This reverts commit 5998b22f18cada98ba7c6d1f35c3f6b378637476. * chore: remove duplicated logic between Layout and LayoutHeader (#6954) * chore: more layout refactoring * remove unused prop, alphabetize props * improve oauth docs (#6961) * fixed gen 2 getting started guide (#6968) * Update redirects for deleted hidden pages (#6944) * Update manual installation to point to @beta tag (#6972) * include usage for multi-page apps (#6964) * include usage for multi-page apps * improve multi-page app docs * use Hub syntax * update imports in examples * chore: Clean up broken Amplify JS API reference links (#6976) * chore: Clean up broken Amplify JS API reference links. * Cleaned up language. * Update build image instructions for Gen 2 (#6978) * update build image settings for Gen 2 * remove callout and add fragment to vite guide * chore: add unit test for YoutubeEmbed component (#6983) * chore: add unit test for YoutubeEmbed component * add code coverage stats --------- Co-authored-by: katiegoines * chore: add unit tests for Accordion component (#6981) * chore: add unit tests for Accordion component * issue with window properties * fixed tracking test * working on animation issue * accordion tests * fix testing errors * added test for closing accordion * add code coverage stats --------- Co-authored-by: katiegoines * Update index.mdx (#6986) * Add env variables for algolia (#6957) * Add algolia env vars to next.config * Remove extra code string * fix(data): update REST API docs to document correct error response type (#6989) * fix(data): update React Native minimum iOS deployment target guidance; add build step to docs (#6970) * fix(data): update React Native minimum iOS deployment target; add build step to docs * address PR feedback * remove deployment target guidance * add React Native version deployment target callout * fix unrecognized syntax * replace callout with accordion * move 'upgrading' callout * Clarify behavior of forgetDevice() API regarding device tracking (#6985) * Clarify behavior of forgetDevice() API regarding device tracking This commit updates the documentation to clarify that using the forgetDevice() API results in the device being neither remembered nor tracked. Previously, the documentation suggested that forgotten devices might still be tracked, leading to confusion about the API's behavior. The revised wording aligns with the detailed description under the "Forgotten" section, ensuring consistency and eliminating ambiguity about how forgotten devices are handled. * Clarify behavior of forgetDevice() API regarding device tracking * Support for enum value listing (#6885) * Support for enum value listing * Update src/pages/gen2/build-a-backend/data/data-modeling/add-fields/index.mdx * CDK updates v2 (#6990) * Add padding to bottom of nav menu (#6991) * Adding secondary index to Gen 2 (#6996) * Adding secondary index docs * fixed some formatting for custom query fields * extend config to show addOuput (#6963) * extend config * modify wording * modify example * improve wording * Update index.mdx (#6995) * Update index.mdx * add guest access support to docs * chore: add unit tests for NextPrevious component (#7003) Co-authored-by: katiegoines * chore: add unit tests for LinkCards and LinkCard components (#7006) Co-authored-by: katiegoines * chore: add unit tests for GetStartedPopover component (#7005) Co-authored-by: katiegoines * fix: [Storage] Configure Access (#6948) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix(Swift): update data use policy info's tracking to false (#6938) * fix(Swift): update data use policy info's tracking to false * Update data-information.mdx * chore: add callouts and troubleshooting guide for configuration (#6967) * fix: resolve in-content broken links (#7011) * re-platforming * remove reference to mocking and testing for android & swift * remove reference to mocking and testing for android & swift * filtered out reference to optimistic ui for react native --------- Co-authored-by: katiegoines * update gen2 storage and function docs (#7009) * update gen2 storage and function docs * add resource access links and example * revisions, update code snippet titles * Update CODEOWNERS (#7014) * updated steps for extending components in code (#6827) Co-authored-by: Aditya Shahani * Custom business logic support as of March @beta (#7019) * Enhanced custom business logic DX * addressed tim's comments * Added custom subscription configuration worfklow * removed in-development areas * added titles * added links for deep dive material * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: josef * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx * added client method for clarity. * Update src/pages/gen2/build-a-backend/data/custom-business-logic/index.mdx Co-authored-by: Kethan sai * Apply suggestions from code review Co-authored-by: josef --------- Co-authored-by: josef Co-authored-by: Kethan sai * add storage trigger docs (#7020) * storage trigger docs * Apply suggestions from code review Co-authored-by: josef * add storage access actions --------- Co-authored-by: josef * update link checker to wait for each call to complete before making t… (#6993) * update link checker to wait for each call to complete before making the next and remove # from urls being checked * update logging to show how many links found on each page * Update tasks/link-checker.js --------- Co-authored-by: Jacob Logan Co-authored-by: katiegoines Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * custom examples (#6979) * custom examples * fix: broken link, missing / at start (#7026) Co-authored-by: katiegoines * validate and fix code snippets in Data section (#6975) * Update sandbox --dir-to-watch description (#7031) * Update index.mdx (#7035) * Fix link (#7028) * add docs to auth resource access pattern (#7032) * fix: type platform as optional in Breadcrumbs component & add unit tests (#6912) * platform typed as optional * chore: add unit tests for Breadcrumbs * testing to include platform optional * fix: type platform as optional * add tests for override values --------- Co-authored-by: katiegoines * fix: proper variable naming conventions for storage (#7033) fix: proper variable naming conventions for storage * remove explicit file extension from gen2 imports (#6946) Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * fix: Update diff code blocks to TypeScript with code highlights (#6905) * add docs on granting defineFunction access to defineData (#7029) * standardize Gen 2 wording (#7036) * Update index.mdx (#6906) * Modify_Amplify_resources (#7018) * fix code snippets on read data page * code snippet updates * updated the code snippets * updated code snippets. * custom business page rollback * Update maplibre links (#7040) * chore: add unit tests for PlatformNavigator (#6980) * chore: add unit tests for PlatformNavigator * add code coverage * simplify * simplify --------- Co-authored-by: katiegoines * Update links to expo docs (#7044) * Update links to expo docs * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef * Update src/pages/[platform]/prev/build-a-backend/auth/add-social-provider/index.mdx Co-authored-by: josef --------- Co-authored-by: josef * chore: add unit tests for InternalLinkButton (#7000) Co-authored-by: katiegoines * chore: add addtl unit test for Block component (#6982) * chore: add addtl unit test for Block component * add code coverage stats * remove superfluous Block component --------- Co-authored-by: katiegoines * chore: add unit tests for TOC (#6984) * chore: add unit tests for TOC * add code coverage * hardcode expected hash --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLink (#6915) * chore: add unit tests for ExternalLink * fixing tracking test --------- Co-authored-by: katiegoines * chore: add unit tests for ExternalLinkButton (#6914) * chore: add unit tests for ExternalLinkButton * Update ExternalLinkButton.test.tsx triggering checks --------- Co-authored-by: katiegoines * chore: add unit tests for Footer component (#6999) Co-authored-by: katiegoines * chore: add unit tests for MigrationAlert component (#7004) * chore: add unit tests for MigrationAlert component * chore: add unit tests for MigrationAlert component --------- Co-authored-by: katiegoines * chore: add unit test for Overview component (#7002) Co-authored-by: katiegoines * chore: upgrade docsearch/react to 3.6 (#7046) * added utility type content (#7047) * chore: add unit tests for PageLastUpdated (#7001) Co-authored-by: katiegoines * chore: add unit tests for Commands and Columns (#6916) * chore: add unit test for CLICommands * chore: add unit test for Columns * Update Command.test.tsx triggering checks --------- Co-authored-by: katiegoines * Update resolution for follow-redirects (#7055) * Update relative urls (#7048) * Update relative urls * Update url * Updating link checker (#7052) * Updating link checker to account for duplicate urls from different pages and link text * Update slack formatting * Remove console.log * Add comments to function * Remove extra console.logs() * chore: update redirects list (#6969) * update redirects * updated redirects --------- Co-authored-by: katiegoines * remove allowlist role names for appsync console access page (#7081) * Add JavaScript resolver code sample to Gen 1 (#7087) * fix(JS): Update v5 JS libraries installation guides. (#7090) * fix(v5): update aws-amplify v5 dependency * chore: remove extra '0' number from versions * chore: remove vue2 block * chore: update version reference * Cbonif/field-level-auth-support-for-sql (#7091) * chore(gen2-data): update .secondaryIndexes example to match the latest interface (#7095) * update setup auth client example with correct props (#7106) * update auth with correct props * Change generated function env package name (#7096) * Update typo in url for localhost (#7110) * update next config to use a static build Id (#7102) Co-authored-by: Jacob Logan * chore: Add callout on Analytics buffer persistence in Amplify JS (#7115) * chore: Add callout on Analytics buffer persistence in Amplify JS. * PR feedback. * Custom subscription docs to Gen 2 (#7120) * Add playsInline to videos (#7125) * autoSignIn position correction in v6 migration docs (#7059) * fix(next-release/main): update home page h1 and code block font size (#7117) (#7126) * update font sizes * add text-size-adjust * add webkit prefix, add comment * update text-size-adjust fix --------- Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> * remove parenthesis from "Amplify (Gen 2)" (#7113) * change "NPM" to "npm" (#7112) * remove explicit ".js" extension from gen2 resource imports (#7134) * remove leading slash from storage access paths (#7116) * remove unnecessary "Angular" mention in auth getting started (#7139) Removed 'Angular' from the app description. It is not necessarily an angular app. * Gen 2 Quickstart: Fix amplify console link (#7141) * fix amplify console link * fix text from AWS Console to Amplify Console * updated alt text for Amplify console * Update src/fragments/gen2/quickstart/deploy-and-host.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Update src/pages/gen2/deploy-and-host/fullstack-branching/branch-deployments/index.mdx Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> --------- Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> * Add Favicon and apple-touch icons to root (#7137) * add 96x96 favicons * add favicon and apple-touch to root * updated icons --------- Co-authored-by: Jacob Logan * docs(migration): fixes mislabeling notification enable snippet (#7135) the v5 snippet was labeled as v6 and the v6 was labeled as v5 Co-authored-by: derrik.fleming * edits to custom business logic (#7129) * remove console.log (#7147) * fix: copied code no longer includes markdown comments (#7146) * fix: copied code no longer includes markdown comments * minor cleanup * splite prepareCopyText to it's own export for easier testing * fix MDXCode mock * chore(react-native): Add callouts for dropped Expo Go support (#7160) * Update index.mdx (#7165) * Update github link to maplibre repo (#7162) * remove gen2 pages added --------- Co-authored-by: Jim Eagan <84857865+hibler13@users.noreply.github.com> Co-authored-by: Kevin Old Co-authored-by: Jim Blanchard Co-authored-by: Ankit Shah <22114629+ankpshah@users.noreply.github.com> Co-authored-by: katiegoines Co-authored-by: Dan Kiuna Co-authored-by: Kihara, Takuya Co-authored-by: Tyler Roach Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: Rene Brandel <4989523+renebrandel@users.noreply.github.com> Co-authored-by: Elijah Quartey Co-authored-by: Heather Buchel Co-authored-by: John Corser Co-authored-by: Heather Pundt <119376175+heatheramz@users.noreply.github.com> Co-authored-by: Nikhil Swaminathan <2429410+swaminator@users.noreply.github.com> Co-authored-by: Jay Raval Co-authored-by: David McAfee Co-authored-by: Kethan sai Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: erinleigh90 <106691284+erinleigh90@users.noreply.github.com> Co-authored-by: Edward Foyle Co-authored-by: Adi <34354177+the1adi@users.noreply.github.com> Co-authored-by: Aditya Shahani Co-authored-by: josef Co-authored-by: jacoblogan Co-authored-by: Jacob Logan Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> Co-authored-by: Chris Bonifacio Co-authored-by: Roshane Pascual Co-authored-by: Charles Shin Co-authored-by: Ujjwol Shrestha Co-authored-by: Gen Tamura Co-authored-by: dwittle <72715628+dwittle@users.noreply.github.com> Co-authored-by: Anil Maktala Co-authored-by: israx <70438514+israx@users.noreply.github.com> Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Co-authored-by: Nairi Areg <51801223+NairiAreg@users.noreply.github.com> Co-authored-by: spivakov83 Co-authored-by: Harshita Daddala Co-authored-by: derrik Co-authored-by: derrik.fleming Co-authored-by: Chris F <5827964+cshfang@users.noreply.github.com> --------- Co-authored-by: Jim Eagan <84857865+hibler13@users.noreply.github.com> Co-authored-by: Kevin Old Co-authored-by: Jim Blanchard Co-authored-by: Ankit Shah <22114629+ankpshah@users.noreply.github.com> Co-authored-by: katiegoines Co-authored-by: Dan Kiuna Co-authored-by: Kihara, Takuya Co-authored-by: Tyler Roach Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: Rene Brandel <4989523+renebrandel@users.noreply.github.com> Co-authored-by: Elijah Quartey Co-authored-by: Heather Buchel Co-authored-by: John Corser Co-authored-by: Heather Pundt <119376175+heatheramz@users.noreply.github.com> Co-authored-by: Nikhil Swaminathan <2429410+swaminator@users.noreply.github.com> Co-authored-by: Jay Raval Co-authored-by: David McAfee Co-authored-by: Kethan sai Co-auth… * updated UI docs for forms gen 2 * vite quickstart updated to be the gold standard (draft) * minor edit * add feedback to quickstart (#7257) * 1. Consolidated quickstarts 2. Added react native 3. removed mobile support page 4. Vue and React tutorials finished * Updates to formbuilder * angular tutorial * added angular * reviewed android, ios, flutter * android QS * updated next.js tutorials * Next.js tweaks * updated aws account setup to use IdC by default * tweaks to idc setup * changed the title * fixed merge issue with customize ui * form lifecyle merges * Fixed typos * gen1 v gen2 * functions title fix * functions title fix * change next title * Updating formbuilder special inputs page * Update cspell.json * Update src/pages/[platform]/build-ui/formbuilder/customize/index.mdx Co-authored-by: Ali Spittel * Update src/pages/[platform]/build-ui/formbuilder/special-inputs/index.mdx Co-authored-by: Ali Spittel * gen1 gen2 updates * renamed folder to match console link * fixed merge conflict bug * added JS quickstart, fixed TK images * Update src/pages/[platform]/start/quickstart/index.mdx Co-authored-by: Ali Spittel * Update src/pages/[platform]/start/quickstart/index.mdx * Update src/pages/[platform]/start/quickstart/index.mdx --------- Co-authored-by: Rene Brandel Co-authored-by: Katie Goines <30757403+katiegoines@users.noreply.github.com> Co-authored-by: Jim Eagan <84857865+hibler13@users.noreply.github.com> Co-authored-by: Kevin Old Co-authored-by: Jim Blanchard Co-authored-by: Ankit Shah <22114629+ankpshah@users.noreply.github.com> Co-authored-by: katiegoines Co-authored-by: Dan Kiuna Co-authored-by: Kihara, Takuya Co-authored-by: Tyler Roach Co-authored-by: Tim Nguyen <54393192+timngyn@users.noreply.github.com> Co-authored-by: Rene Brandel <4989523+renebrandel@users.noreply.github.com> Co-authored-by: Elijah Quartey Co-authored-by: Heather Buchel Co-authored-by: John Corser Co-authored-by: Heather Pundt <119376175+heatheramz@users.noreply.github.com> Co-authored-by: Jay Raval Co-authored-by: David McAfee Co-authored-by: Kethan sai Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: erinleigh90 <106691284+erinleigh90@users.noreply.github.com> Co-authored-by: Edward Foyle Co-authored-by: Adi <34354177+the1adi@users.noreply.github.com> Co-authored-by: Aditya Shahani Co-authored-by: josef Co-authored-by: jacoblogan Co-authored-by: Jacob Logan Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> Co-authored-by: Chris Bonifacio Co-authored-by: Roshane Pascual Co-authored-by: Charles Shin Co-authored-by: Ujjwol Shrestha Co-authored-by: Gen Tamura Co-authored-by: dwittle <72715628+dwittle@users.noreply.github.com> Co-authored-by: Anil Maktala Co-authored-by: israx <70438514+israx@users.noreply.github.com> Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Co-authored-by: Nairi Areg <51801223+NairiAreg@users.noreply.github.com> Co-authored-by: spivakov83 Co-authored-by: Harshita Daddala Co-authored-by: derrik Co-authored-by: derrik.fleming Co-authored-by: Chris F <5827964+cshfang@users.noreply.github.com> Co-authored-by: Ali Spittel Co-authored-by: Mo Malaka Co-authored-by: Arundeep Nagaraj <84913786+arundna@users.noreply.github.com> Co-authored-by: Arundeep Nagaraj Co-authored-by: Kamil Sobol Co-authored-by: Tim Schmelter Co-authored-by: yuhengshs <94558971+yuhengshs@users.noreply.github.com> Co-authored-by: Danny Banks --- .../gen2/getting-started/data-manager.png | Bin 0 -> 226730 bytes .../[platform]/start/quickstart/index.mdx | 258 +++++++++++++++++- 2 files changed, 245 insertions(+), 13 deletions(-) create mode 100644 public/images/gen2/getting-started/data-manager.png diff --git a/public/images/gen2/getting-started/data-manager.png b/public/images/gen2/getting-started/data-manager.png new file mode 100644 index 0000000000000000000000000000000000000000..94fa632e41c69ecadbe2818e057aee27d5e8e699 GIT binary patch literal 226730 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 x-05ur&r`6p>Y> + +👋 Welcome to AWS Amplify! In this quickstart guide, you will: + +1. Deploy a Vanilla JavaScript app with Vite +2. Build and connect to a database with real-time data updates +3. Configure authentication and authorization rules + + +## Create project + +Create a new Vanilla JavaScript app with vite using the following commands, create the directory (`amplify-js-app`) and files for the app. + +```bash +npm create vite@latest +✔ Project name: amplify-js-app +✔ Select a framework: › Vanilla +✔ Select a variant: › TypeScript +``` + +Initialize npm and install dependencies and dev dependencies. +```bash +cd amplify-js-app +npm install +npm run dev +``` + +This runs a development server and allows you to see the output generated by the build. You can see the running app by navigating to [http://localhost:5173](http://localhost:5173). + +Add the following to the `index.html` file: + +```html title="index.html" + + + + + + Todo App + + +
+

My todos

+ +
    +
    +
    + + + +``` + +Add the following to `style.css` file: + +{/* cSpell:disable */} + +```css title="style.css" +body { + margin: 0; + background: linear-gradient(180deg, rgb(117, 81, 194), rgb(255, 255, 255)); + display: flex; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + height: 100vh; + width: 100vw; + justify-content: center; + align-items: center; +} + +main { + display: flex; + flex-direction: column; + align-items: stretch; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; + color: white; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +ul { + padding-inline-start: 0; + margin-block-start: 0; + margin-block-end: 0; + list-style-type: none; + display: flex; + flex-direction: column; + margin: 8px 0; + border: 1px solid black; + gap: 1px; + background-color: black; + border-radius: 8px; + overflow: auto; +} + +li { + background-color: white; + padding: 8px; +} + +li:hover { + background: #dadbf9; +} + +a { + font-weight: 800; + text-decoration: none; +} +``` +{/* cSpell:enable */} + +In `main.js` remove the boilerplate code and leave it empty. Then refresh the browser to see the changes. + +## Create Backend + +The easiest way to get started with AWS Amplify is through npm with `create-amplify` command. You can run it from your base project directory. + +```bash title="Terminal" showLineNumbers={false} +npm create amplify@latest +? Where should we create your project? (.) # press enter +``` + +Running this command will scaffold Amplify backend files in your current project with the following files added: + +```text +├── amplify/ +│ ├── auth/ +│ │ └── resource.ts +│ ├── data/ +│ │ └── resource.ts +│ ├── backend.ts +│ └── package.json +├── node_modules/ +├── index.html +├── style.css +├── .gitignore +├── package-lock.json +├── package.json +└── tsconfig.json +``` + +### Set up local AWS credentials + +To make backend updates, we are going to require AWS credentials to deploy backend updates from our local machine. + +**Skip ahead to step 8**, if you already have an AWS profile with credentials on your local machine, and your AWS profile has the `AmplifyBackendDeployFullAccess` permission policy. + +Otherwise, **[set up local AWS credentials](/[platform]/start/account-setup/)** that grant Amplify permissions to deploy backend updates from your local machine. + +### Deploy cloud sandbox + +To deploy your backend use Amplify's per-developer cloud sandbox. This feature provides a separate backend environment for every developer on a team, ideal for local development and testing. To run your application with a sandbox environment, you can run the following command: + +```bash title="Terminal" showLineNumbers={false} +npx ampx sandbox +``` + +Once the sandbox environment is deployed, it will create a GraphQL API, database, and auth service. All the deployed resources will be available in the `amplify_outputs.json`. However, Xcode won't be able to recognize them. For recognizing the files, you need to drag and drop the generated files to your project. + +## Connect frontend to backend + +The initial scaffolding already has a pre-configured data backend defined in the `amplify/data/resource.ts` file. The default example will create a Todo model with `content` field. Update your main.js file to create new to-do items. + +```typescript title="src/main.ts" +import { generateClient } from "aws-amplify/data"; +import type { Schema } from "../amplify/data/resource"; +import './style.css'; +import { Amplify } from 'aws-amplify'; +import outputs from '../amplify_outputs.json'; + +Amplify.configure(outputs); + + +const client = generateClient(); + +document.addEventListener("DOMContentLoaded", function () { + const todos: Array = []; + const todoList = document.getElementById("todoList") as HTMLUListElement; + const addTodoButton = document.getElementById("addTodo") as HTMLButtonElement; + + addTodoButton.addEventListener("click", createTodo); + + function updateUI() { + todoList.innerHTML = ''; + todos.forEach(todo => { + const li = document.createElement('li'); + li.textContent = todo.content ?? ''; + todoList.appendChild(li); + }); + } + + function createTodo() { + console.log('createTodo'); + const content = window.prompt("Todo content"); + if (content) { + client.models.Todo.create({ content }).then(response => { + if (response.data && !response.errors) { + todos.push(response.data); + updateUI(); + } else { + console.error('Error creating todo:', response.errors); + alert('Failed to create todo.'); + } + }).catch(error => { + console.error('Network or other error:', error); + alert('Failed to create todo due to a network or other error.'); + }); + } + } + + + client.models.Todo.observeQuery().subscribe({ + next: (data) => { + todos.splice(0, todos.length, ...data.items); + updateUI(); + } + }); +}); +``` + + @@ -112,7 +352,7 @@ Let's take a tour of the project structure in this starter repository by opening In the Amplify Console, navigate to the Data manager to see the data entered in your database. -TK IMAGE +![Amplify data manager user interface showing the ToDo model with two to do instances](/images/gen2/getting-started/data-manager.png) ## Make frontend updates @@ -449,7 +689,7 @@ Let's take a tour of the project structure in this starter repository by opening In the Amplify Console, navigate to the Data manager to see the data entered in your database. -TK IMAGE +![Amplify data manager user interface showing the ToDo model with two to do instances](/images/gen2/getting-started/data-manager.png) ## Make frontend updates @@ -782,7 +1022,7 @@ Let's take a tour of the project structure in this starter repository by opening In the Amplify Console, navigate to the Data manager to see the data entered in your database. -TK IMAGE +![Amplify data manager user interface showing the ToDo model with two to do instances](/images/gen2/getting-started/data-manager.png) ## Make frontend updates @@ -1074,7 +1314,7 @@ flutter create my_amplify_app The easiest way to get started with AWS Amplify is through npm with `create-amplify` command. You can run it from your base project directory. ```bash title="Terminal" showLineNumbers={false} -npm create amplify@beta +npm create amplify@latest ? Where should we create your project? (.) # press enter ``` @@ -2698,15 +2938,7 @@ For publishing the changes to cloud, you need to create a remote git repository. - + ## 🥳 Success