├── .env.example ├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml ├── scripts │ └── get-path-prefix.js └── workflows │ ├── algolia-indexing.yml │ ├── deploy.yml │ ├── lint.yml │ └── resuse-deploy.yml ├── .gitignore ├── .yarn └── releases │ └── yarn-3.2.2.cjs ├── .yarnrc.yml ├── CODE_OF_CONDUCT.md ├── COPYRIGHT ├── LICENSE ├── README.md ├── dev.mjs ├── package.json ├── samples ├── adobe-auth-node │ ├── .gitignore │ ├── package-lock.json │ ├── package.json │ ├── readme.md │ ├── server │ │ └── index.js │ └── views │ │ └── index.jade └── adobe-auth-python │ ├── .gitignore │ ├── adobe-oauth2.0.py │ ├── config.py │ ├── readme.md │ └── templates │ └── index.html ├── src └── pages │ ├── config.md │ ├── guides │ ├── apis-and-services.md │ ├── authentication │ │ ├── APIKeyAuthentication │ │ │ └── index.md │ │ ├── AdminAuthentication │ │ │ ├── implementation.md │ │ │ ├── ims.md │ │ │ ├── index.md │ │ │ └── samples.md │ │ ├── Images │ │ │ ├── OP_1.png │ │ │ ├── OP_2.png │ │ │ ├── OP_3.png │ │ │ ├── OP_4.png │ │ │ ├── OP_5.png │ │ │ ├── PMW_1.png │ │ │ ├── PMW_2.png │ │ │ ├── PMW_3.png │ │ │ ├── PM_1.png │ │ │ ├── PM_2.png │ │ │ ├── PM_3.png │ │ │ ├── PM_4.png │ │ │ ├── PM_5.png │ │ │ ├── PM_6.png │ │ │ ├── PM_JWT_1.png │ │ │ ├── PM_JWT_2.png │ │ │ ├── PM_JWT_3.png │ │ │ ├── PM_JWT_4.png │ │ │ ├── PM_JWT_5.png │ │ │ ├── access_grant.png │ │ │ ├── api-key-1.png │ │ │ ├── api-key-2.png │ │ │ ├── api-key-3.png │ │ │ ├── api-key-4.png │ │ │ ├── api-key-5.png │ │ │ ├── api-key-6.png │ │ │ ├── api-key-7.png │ │ │ ├── auth_jwtqs_00.png │ │ │ ├── auth_jwtqs_000.png │ │ │ ├── auth_jwtqs_01.png │ │ │ ├── auth_jwtqs_02.png │ │ │ ├── auth_jwtqs_03.png │ │ │ ├── auth_jwtqs_04.png │ │ │ ├── auth_jwtqs_05.png │ │ │ ├── auth_jwtqs_06.png │ │ │ ├── auth_jwtqs_07.png │ │ │ ├── auth_jwtqs_08.png │ │ │ ├── credentials_page.png │ │ │ ├── login_screen.png │ │ │ ├── oauth-0.png │ │ │ ├── oauth-1.png │ │ │ ├── oauth-2.png │ │ │ ├── oauth-3.png │ │ │ ├── oauth-4.png │ │ │ ├── oauth-5.png │ │ │ └── oauth-6.png │ │ ├── JWT │ │ │ ├── faq.md │ │ │ ├── index.md │ │ │ ├── jwt-certificate.md │ │ │ ├── samples.md │ │ │ └── scopes.md │ │ ├── OAuth │ │ │ ├── index.md │ │ │ ├── samples.md │ │ │ └── scopes.md │ │ ├── ServerToServerAuthentication │ │ │ ├── faqs.md │ │ │ ├── implementation.md │ │ │ ├── ims.md │ │ │ ├── index.md │ │ │ └── migration.md │ │ ├── Tools │ │ │ ├── index.md │ │ │ ├── o-auth-playground.md │ │ │ └── postman.md │ │ ├── UserAuthentication │ │ │ ├── implementation.md │ │ │ ├── ims.md │ │ │ └── index.md │ │ ├── api-key-integration.md │ │ ├── ims.md │ │ ├── index.md │ │ ├── o-auth-integration.md │ │ └── service-account-integration.md │ ├── credentials.md │ ├── email-alerts │ │ ├── cert-expiry.md │ │ └── index.md │ ├── getting-started.md │ ├── index.md │ ├── insights.md │ ├── plugins │ │ ├── index.md │ │ ├── plugin-distribution.md │ │ └── plugin-update.md │ ├── projects │ │ ├── approval.md │ │ ├── beta-users.md │ │ ├── index.md │ │ ├── projects-empty.md │ │ └── projects-template.md │ ├── public-profile.md │ ├── quota.md │ └── services │ │ ├── index.md │ │ ├── services-add-api-jwt.md │ │ ├── services-add-api-key.md │ │ ├── services-add-api-oauth-s2s.md │ │ ├── services-add-api-oauth-user-authentication.md │ │ ├── services-add-api-oauth.md │ │ ├── services-add-event.md │ │ └── services-enable-runtime.md │ ├── images │ ├── access-denied-screen.png │ ├── activate-email-alerts.png │ ├── add-email-alert-recipient.png │ ├── apis-and-services.png │ ├── approval-app-rejected.png │ ├── approval-app-submission-details.png │ ├── approval-empty-project.png │ ├── approval-in-review.png │ ├── approval-personal-app-in-review.png │ ├── approval-personal-app-submission-details.png │ ├── approval-production-overview.png │ ├── approval-public-profile-in-review.png │ ├── approval-public-profile-published.png │ ├── approval-published.png │ ├── approval-submit-for-approval.png │ ├── beta-users-add.png │ ├── beta-users-clear-confirm.png │ ├── beta-users-clear-list.png │ ├── beta-users-clear-upload.png │ ├── beta-users-list-saved.png │ ├── beta-users-project-overview.png │ ├── beta-users-upload.png │ ├── browse-templates.png │ ├── console_dnl_1.png │ ├── console_dnl_2.png │ ├── console_int_1.png │ ├── console_int_2.png │ ├── console_int_3.png │ ├── console_int_4.png │ ├── console_int_5.png │ ├── console_ovw_1.png │ ├── console_plg_1.png │ ├── console_plg_2.png │ ├── console_plg_3.png │ ├── console_plugins.png │ ├── console_plugins_add_new_version.png │ ├── console_plugins_add_new_version_review.png │ ├── console_plugins_create.png │ ├── console_plugins_distribute.png │ ├── console_plugins_distribute_add_language.png │ ├── console_plugins_distribute_in_review.png │ ├── console_plugins_distribute_localization_complete.png │ ├── console_plugins_distribute_plugin_file.png │ ├── console_plugins_landing.png │ ├── console_plugins_landing_project.png │ ├── console_plugins_listing_info.png │ ├── console_plugins_listing_language.png │ ├── console_plugins_listing_new_version.png │ ├── console_plugins_project_overview.png │ ├── console_plugins_published.png │ ├── console_plugins_version_plugin_file.png │ ├── console_plugins_version_review.png │ ├── create-new-project-quick-start.png │ ├── create-new-project.png │ ├── create-project-from-template.png │ ├── credentials-api-key.png │ ├── credentials-details.png │ ├── credentials-generate-jwt.png │ ├── credentials-generated-jwt.png │ ├── credentials-oauth-web.png │ ├── credentials-project-overview.png │ ├── developer-console-home.png │ ├── download-details.png │ ├── download-sdk-history.png │ ├── download-terms-conditions.png │ ├── downloads-and-SDKs.png │ ├── downloads-details.png │ ├── downloads-download-started.png │ ├── downloads-history.png │ ├── downloads.png │ ├── empty-project-add-to-project.png │ ├── empty-project-created.png │ ├── enterprise-web-app-admin-auth.png │ ├── enterprise-web-app-apis-and-services.png │ ├── enterprise-web-app-client-secret-add.png │ ├── enterprise-web-app-client-secret-delete.png │ ├── enterprise-web-app-client-secret.png │ ├── enterprise-web-app-consent-screen.png │ ├── enterprise-web-app-credential-name.png │ ├── enterprise-web-app-credential-overview.png │ ├── enterprise-web-app-generate-access-token-uml.png │ ├── enterprise-web-app-redirect-url.png │ ├── events-add-select.png │ ├── events-add.png │ ├── events-configure-auth.png │ ├── events-configure-registration.png │ ├── events-configure.png │ ├── events-credentials.png │ ├── events-debug-tracing.png │ ├── events-get-started.png │ ├── events-registration-details.png │ ├── generate-certificate-key-pair.png │ ├── insights-api-detail.png │ ├── insights-api-overview.png │ ├── insights-overview.png │ ├── insights-runtime-action.png │ ├── insights-runtime-overview.png │ ├── new-project-created.png │ ├── oauth-server-to-server-credential-add-client-secret.png │ ├── oauth-server-to-server-credential-added-client-secret.png │ ├── oauth-server-to-server-credential-check-client-secret-timestamps.png │ ├── oauth-server-to-server-credential-delete-old-client-secret.png │ ├── oauth-server-to-server-credential-generate-access-tokens.png │ ├── oauth-server-to-server-credential-name-update.png │ ├── oauth-server-to-server-credential-name.png │ ├── oauth-server-to-server-credential-product-profiles.png │ ├── pause-email-alerts.png │ ├── personal-org-select.png │ ├── personal-org.png │ ├── personal-project-add-plugin.png │ ├── personal-project-created.png │ ├── plugin-add-a-plugin.png │ ├── plugin-add-new-version.png │ ├── plugin-create-listing.png │ ├── plugin-created.png │ ├── plugin-distribute-complete.png │ ├── plugin-distribute-docs.png │ ├── plugin-distribute-file.png │ ├── plugin-distribute-steps.png │ ├── plugin-distribute-success.png │ ├── plugin-distribute.png │ ├── plugin-download-starter.png │ ├── plugin-listing-information.png │ ├── plugin-new-version-in-review.png │ ├── plugin-photoshop-fastspring.png │ ├── plugin-photoshop-purchase-method.png │ ├── plugin-preview-submit.png │ ├── plugin-project-overview.png │ ├── plugin-publisher-information.png │ ├── production-workspace.png │ ├── project-activity-log.png │ ├── project-delete.png │ ├── project-overview.png │ ├── project-personal-listing.png │ ├── projects-card-view.png │ ├── projects-export-activity-log.png │ ├── projects-list-view.png │ ├── projects-read-only.png │ ├── projects.png │ ├── public-profile-button.png │ ├── public-profile-commerce.png │ ├── public-profile-complete.png │ ├── public-profile-contact-to-update.png │ ├── public-profile-create.png │ ├── public-profile-edit.png │ ├── public-profile-view-only.png │ ├── quick-start.png │ ├── quota-usage.png │ ├── recent-projects.png │ ├── remove-certificate-key-pair.png │ ├── remove-email-alert-recipient.png │ ├── resources.png │ ├── runtime-add-workspace.png │ ├── runtime-empty-project.png │ ├── runtime-get-started.png │ ├── runtime-new-workspace.png │ ├── runtime-workspaces.png │ ├── services-add-api.png │ ├── services-add-to-project.png │ ├── services-api-key-added.png │ ├── services-api-key-choose.png │ ├── services-api-key-configure.png │ ├── services-api-oauth-configure.png │ ├── services-api-oauth-s2s-added.png │ ├── services-api-oauth-s2s-choose-profiles.png │ ├── services-api-oauth-s2s-create.png │ ├── services-api-oauth-s2s-generate-token-2.png │ ├── services-api-oauth-s2s-generate-token.png │ ├── services-api-oauth-s2s-view-curl-command.png │ ├── services-api-oauth-s2s-view-scopes.png │ ├── services-api-oauth-select.png │ ├── services-api-oauth-user-auth-added.png │ ├── services-api-oauth-user-auth-credential-overview.png │ ├── services-api-oauth-user-auth-credential-scopes.png │ ├── services-api-oauth-web.png │ ├── services-overview-add-api.png │ ├── services-select-api-oauth-s2s.png │ ├── set-up-templated-project.png │ ├── switch-organizations.png │ ├── templated-project-add-workspace.png │ ├── templated-project-app-name.png │ ├── templated-project-title.png │ ├── templated-project-workspaces.png │ ├── user-view-request-access.png │ ├── welcome.png │ ├── what-is-a-credential.png │ ├── workspace-add-service.png │ ├── workspace-get-started.png │ └── workspace-products-services.png │ ├── redirects.json │ └── support │ ├── faq.md │ └── index.md ├── static └── redirections.js └── yarn.lock /.env.example: -------------------------------------------------------------------------------- 1 | REPO_GITHUB_TOKEN= 2 | REPO_OWNER=AdobeDocs 3 | REPO_NAME=dev-site-documentation-template 4 | REPO_BRANCH=main 5 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Thanks for choosing to contribute! 4 | 5 | The following are a set of guidelines to follow when contributing to this project. 6 | 7 | ## Code Of Conduct 8 | 9 | This project adheres to the Adobe [code of conduct](../CODE_OF_CONDUCT.md). By participating, 10 | you are expected to uphold this code. Please report unacceptable behavior to 11 | [Grp-opensourceoffice@adobe.com](mailto:Grp-opensourceoffice@adobe.com). 12 | 13 | ## Have A Question? 14 | 15 | Start by filing an issue. The existing committers on this project work to reach 16 | consensus around project direction and issue solutions within issue threads 17 | (when appropriate). 18 | 19 | ## Contributor License Agreement 20 | 21 | All third-party contributions to this project must be accompanied by a signed contributor 22 | license agreement. This gives Adobe permission to redistribute your contributions 23 | as part of the project. [Sign our CLA](https://opensource.adobe.com/cla.html). You 24 | only need to submit an Adobe CLA one time, so if you have submitted one previously, 25 | you are good to go! 26 | 27 | ## Code Reviews 28 | 29 | All submissions should come in the form of pull requests and need to be reviewed 30 | by project committers. Read [GitHub's pull request documentation](https://help.github.com/articles/about-pull-requests/) 31 | for more information on sending pull requests. 32 | 33 | Lastly, please follow the [pull request template](PULL_REQUEST_TEMPLATE.md) when 34 | submitting a pull request! 35 | 36 | ## From Contributor To Committer 37 | 38 | We love contributions from our community! If you'd like to go a step beyond contributor 39 | and become a committer with full write access and a say in the project, you must 40 | be invited to the project. The existing committers employ an internal nomination 41 | process that must reach lazy consensus (silence is approval) before invitations 42 | are issued. If you feel you are qualified and want to get more deeply involved, 43 | feel free to reach out to existing committers to have a conversation about that. 44 | 45 | ## Security Issues 46 | 47 | Security issues shouldn't be reported on this issue tracker. Instead, [file an issue to our security experts](https://helpx.adobe.com/security/alertus.html). 48 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ### Expected Behaviour 5 | 6 | ### Actual Behaviour 7 | 8 | ### Reproduce Scenario (including but not limited to) 9 | 10 | #### Steps to Reproduce 11 | 12 | #### Platform and Version 13 | 14 | #### Sample Code that illustrates the problem 15 | 16 | #### Logs taken while reproducing problem 17 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Description 4 | 5 | 6 | 7 | ## Related Issue 8 | 9 | 10 | 11 | 12 | 13 | 14 | ## Motivation and Context 15 | 16 | 17 | 18 | ## How Has This Been Tested? 19 | 20 | 21 | 22 | 23 | 24 | ## Screenshots (if appropriate): 25 | 26 | ## Types of changes 27 | 28 | 29 | 30 | - [ ] Bug fix (non-breaking change which fixes an issue) 31 | - [ ] New feature (non-breaking change which adds functionality) 32 | - [ ] Breaking change (fix or feature that would cause existing functionality to change) 33 | 34 | ## Checklist: 35 | 36 | 37 | 38 | 39 | - [ ] I have signed the [Adobe Open Source CLA](https://opensource.adobe.com/cla.html). 40 | - [ ] My code follows the code style of this project. 41 | - [ ] My change requires a change to the documentation. 42 | - [ ] I have updated the documentation accordingly. 43 | - [ ] I have read the **CONTRIBUTING** document. 44 | - [ ] I have added tests to cover my changes. 45 | - [ ] All new and existing tests passed. 46 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | # Enable version updates for npm 4 | - package-ecosystem: "npm" 5 | # Look for `package.json` and `lock` files in the `root` directory 6 | directory: "/" 7 | # Check the npm registry for updates every day (weekdays) 8 | schedule: 9 | interval: "daily" 10 | allow: 11 | - dependency-name: "@adobe/gatsby-theme-aio" 12 | versioning-strategy: increase 13 | open-pull-requests-limit: 25 14 | labels: 15 | - "dependencies" 16 | ignore: 17 | # Ignore updates to package 18 | - dependency-name: "gatsby" 19 | -------------------------------------------------------------------------------- /.github/scripts/get-path-prefix.js: -------------------------------------------------------------------------------- 1 | // This script retrieves the pathPrefix from the config.md file and validates it against the pathPrefix from devsite-paths.json. 2 | // It serves as an example for how to set up external javascript functions 3 | // outside workflow .yml files when they get too big or complex to keep them inline. 4 | 5 | // Documentation for the actions/github-script: 6 | // https://github.com/actions/github-script#run-a-separate-file 7 | 8 | const CONFIG_PATH = `./src/pages/config.md`; 9 | const DEVSITE_STAGE_HOST = `https://main--adp-devsite-stage--adobedocs.aem.page`; 10 | const DEVSITE_PROD_HOST = `https://main--adp-devsite--adobedocs.aem.live`; 11 | const DEVSITE_PATHNAME = `/franklin_assets/devsitepaths.json`; 12 | 13 | module.exports = async ({ core, isStage, isProd }) => { 14 | const fs = await require('fs'); 15 | if (!fs.existsSync(CONFIG_PATH)) { 16 | core.setFailed( 17 | `The site's config.md file is missing. 18 | 19 | To fix this, either create one in ./src/pages, or auto-generate one from the site's gatsby-config.md file by building navigation file.` 20 | ); 21 | return; 22 | } 23 | 24 | const string = fs.readFileSync(CONFIG_PATH).toString() ?? ""; 25 | const lines = string.split('\n'); 26 | 27 | // find the pathPrefix key 28 | const keyIndex = lines.findIndex(line => line.includes("pathPrefix:")); 29 | 30 | if (keyIndex < 0) { 31 | core.setFailed( 32 | `The pathPrefix in the site's config.md file is missing. 33 | 34 | To fix this, open your config.md file, and add it to the config object: 35 | 36 | - pathPrefix: 37 | ...` 38 | ); 39 | return; 40 | } 41 | 42 | // find the pathPrefix value 43 | const line = lines.slice(keyIndex + 1)?.find(line => line.trimStart().startsWith("-")) ?? ""; 44 | 45 | // remove whitespace at start, remove dash (i.e. first non-whitespace character), and remove whitespace at start and end 46 | const pathPrefix = line.trimStart().substring(1).trim(); 47 | 48 | if (!pathPrefix) { 49 | core.setFailed( 50 | `The pathPrefix in the site's config.md file is missing. 51 | 52 | To fix this, open your config.md file, and add it to the config object: 53 | 54 | - pathPrefix: 55 | - /commerce/frontend-core/ 56 | ...` 57 | ); 58 | } else if (pathPrefix === '/') { 59 | core.setFailed( 60 | `The pathPrefix in the site's config.md file is set to "/". This is not allowed. 61 | 62 | To fix this, change the pathPrefix to include a name that starts and ends with "/". 63 | 64 | For example: "/commerce/frontend - core/" 65 | 66 | This name identifies the site within the developer.adobe.com domain: 67 | https://developer.adobe.com/document-services/. 68 | ` 69 | ); 70 | } else if (!pathPrefix.startsWith('/') || !pathPrefix.endsWith('/')) { 71 | core.setFailed( 72 | `The pathPrefix in the site's config.md file does not start or end with "/". 73 | 74 | pathPrefix: "${pathPrefix}" 75 | 76 | To fix this, change the pathPrefix to include a name that starts and ends with "/". 77 | For example: "/document-services/" or "/commerce/cloud-tools/". 78 | 79 | This is required by convention because of the way we construct site URLs. 80 | For example: https://developer.adobe.com + /document-services/ + path/to/files/. 81 | ` 82 | ); 83 | } 84 | 85 | // TODO: devsitepaths pathPrefix currently do not have a trailing slash 86 | // will need to refactor all path prefix listings to include them 87 | // but for now checked with a popped trailing slash 88 | 89 | const poppedPathPrefix = pathPrefix.substring(0, pathPrefix.length-1); 90 | // must convert values to boolean from string 91 | if(isStage.toLowerCase() === 'true') { 92 | const stageEntries = await (await fetch(`${DEVSITE_STAGE_HOST}${DEVSITE_PATHNAME}`)).json(); 93 | const stageEntry = stageEntries?.data?.find(entry => entry.pathPrefix === poppedPathPrefix); 94 | 95 | if(!stageEntry) { 96 | core.setFailed( 97 | `The pathPrefix in the site's config.md file was not found in the STAGE gdrive's devsitepaths.json. 98 | 99 | pathPrefix from config.md: "${pathPrefix}" 100 | devsitepath.json location: "${DEVSITE_STAGE_HOST}${DEVSITE_PATHNAME}" 101 | 102 | To fix this, make sure the pathPrefix listed in the config.md is in the devsitepath.json location. 103 | ` 104 | ); 105 | } 106 | } 107 | 108 | // must convert values to boolean from string 109 | if(isProd.toLowerCase() === 'true') { 110 | const prodEntries = await (await fetch(`${DEVSITE_PROD_HOST}${DEVSITE_PATHNAME}`)).json(); 111 | const prodEntry = prodEntries?.data?.find(entry => entry.pathPrefix === poppedPathPrefix); 112 | 113 | if(!prodEntry) { 114 | core.setFailed( 115 | `The pathPrefix in the site's config.md file was not found in the PROD gdrive's devsitepaths.json. 116 | 117 | pathPrefix from config.md: "${pathPrefix}" 118 | devsitepath.json location: "${DEVSITE_PROD_HOST}${DEVSITE_PATHNAME}" 119 | 120 | To fix this, make sure the pathPrefix listed in the config.md is in the devsitepath.json location. 121 | ` 122 | ); 123 | } 124 | } 125 | 126 | core.setOutput('path_prefix', poppedPathPrefix); 127 | } -------------------------------------------------------------------------------- /.github/workflows/algolia-indexing.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Search Indexing 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | mode: 7 | description: 'Type of indexing. "index" to push to Algolia, "console" for dry run.' 8 | required: true 9 | default: "index" 10 | type: choice 11 | options: 12 | - console 13 | - index 14 | 15 | jobs: 16 | build-and-index: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@v4 21 | 22 | - name: Setup Node v18 for Yarn v4 23 | uses: actions/setup-node@v3 24 | with: 25 | node-version: "18.19.0" # Current LTS version 26 | 27 | - name: Enable Corepack for Yarn 28 | run: corepack enable 29 | 30 | - name: Install Dependencies 31 | run: yarn install 32 | env: 33 | YARN_ENABLE_IMMUTABLE_INSTALLS: false 34 | 35 | - name: Build site 36 | run: yarn build 37 | 38 | env: 39 | NODE_OPTIONS: "--max_old_space_size=8192" 40 | PREFIX_PATHS: true # equivalent to --prefix-paths flag for 'gatsby build' 41 | REPO_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 42 | REPO_OWNER: ${{ github.repository_owner }} 43 | REPO_NAME: ${{ github.event.repository.name }} 44 | REPO_BRANCH: ${{ github.ref_name }} 45 | GATSBY_ALGOLIA_APPLICATION_ID: ${{ secrets.AIO_ALGOLIA_APPLICATION_ID }} 46 | GATSBY_ALGOLIA_SEARCH_API_KEY: ${{ secrets.AIO_ALGOLIA_SEARCH_API_KEY }} 47 | ALGOLIA_WRITE_API_KEY: ${{ secrets.AIO_ALGOLIA_WRITE_API_KEY }} 48 | ALGOLIA_INDEXATION_MODE: ${{ github.event.inputs.mode || 'index' }} 49 | GATSBY_ALGOLIA_INDEX_NAME: ${{ secrets.ALGOLIA_INDEX_NAME || github.event.repository.name }} 50 | GATSBY_FEDS_PRIVACY_ID: ${{ secrets.AIO_FEDS_PRIVACY_ID }} 51 | GATSBY_SITE_DOMAIN_URL: https://developer.adobe.com 52 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Deployment 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | env: 7 | description: "Select environment to deploy to" 8 | type: choice 9 | required: true 10 | default: "stage" 11 | options: 12 | - stage 13 | - prod 14 | - stage & prod 15 | baseSha: 16 | description: "Use base SHA commit to deploy from (empty string defaults to last commit before HEAD)" 17 | type: string 18 | required: false 19 | default: "" 20 | deployAll: 21 | description: "Force deploy all files" 22 | type: boolean 23 | default: false 24 | jobs: 25 | deployment: 26 | name: Deployment 27 | uses: AdobeDocs/adp-devsite-workflow/.github/workflows/deploy.yml@main 28 | with: 29 | env: ${{ inputs.env }} 30 | baseSha: ${{ inputs.baseSha }} 31 | deployAll: ${{ inputs.deployAll }} 32 | lint: 33 | name: Lint 34 | runs-on: ubuntu-latest 35 | steps: 36 | - name: Checkout 37 | uses: actions/checkout@v4 38 | - name: Lint 39 | run: npx --yes github:AdobeDocs/adp-devsite-utils runLint -v 40 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Lint 3 | on: 4 | pull_request: 5 | branches: [main] 6 | paths: 7 | - 'src/pages/**' 8 | 9 | jobs: 10 | lint: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v4 15 | 16 | - name: Lint 17 | run: npx --yes github:AdobeDocs/adp-devsite-utils runLint -v -------------------------------------------------------------------------------- /.github/workflows/resuse-deploy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Reuse Deployment 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | env: 7 | description: "Select environment to deploy to" 8 | type: choice 9 | required: true 10 | default: "stage" 11 | options: 12 | - stage 13 | - prod 14 | baseSha: 15 | description: "Use base SHA commit to deploy from (empty string defaults to last commit before HEAD)" 16 | type: string 17 | required: false 18 | default: "" 19 | 20 | jobs: 21 | reuse_deployment: 22 | name: Reuse Deployment 23 | uses: AdobeDocs/adp-devsite-workflow/.github/workflows/deploy.yml@main 24 | with: 25 | env: ${{ inputs.env }} 26 | baseSha: ${{ inputs.baseSha }} 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # OS and IDE generated files # 3 | ############################## 4 | .DS_Store 5 | .vscode 6 | .history 7 | .idea 8 | .editorconfig 9 | 10 | # npm yarn 11 | node_modules 12 | package.lock 13 | yarn-error.log 14 | .pnp.* 15 | .yarn/* 16 | yarn.lock 17 | package-lock.json 18 | 19 | # keep in repo 20 | !.gitignore 21 | !.yarn.lock 22 | !.yarnrc.yml 23 | !.yarn/patches 24 | !.yarn/plugins 25 | !.yarn/releases 26 | !.yarn/sdks 27 | !.yarn/versions 28 | 29 | # gatsby files 30 | .env 31 | .cache 32 | public 33 | 34 | # cypress 35 | cypress/videos 36 | cypress/screenshots 37 | 38 | # lerna 39 | lerna-debug.log 40 | 41 | # local actions 42 | .actrc 43 | .secrets 44 | local-test.yml 45 | 46 | # yalc 47 | .yalc 48 | yalc.lock -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | --- 2 | nodeLinker: node-modules 3 | yarnPath: .yarn/releases/yarn-3.2.2.cjs 4 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Adobe Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language. 18 | * Being respectful of differing viewpoints and experiences. 19 | * Gracefully accepting constructive criticism. 20 | * Focusing on what is best for the community. 21 | * Showing empathy towards other community members. 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances. 27 | * Trolling, insulting/derogatory comments, and personal or political attacks. 28 | * Public or private harassment. 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission. 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting. 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at Grp-opensourceoffice@adobe.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at [https://contributor-covenant.org/version/1/4][version]. 72 | 73 | [homepage]: https://contributor-covenant.org 74 | [version]: https://contributor-covenant.org/version/1/4/ -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- 1 | © Copyright 2015-2020 Adobe. All rights reserved. 2 | 3 | Adobe holds the copyright for all the files found in this repository. 4 | 5 | See the LICENSE file for licensing information. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Documentation 2 | 3 | Please see the [centralized README](https://github.com/AdobeDocs/adp-devsite-utils/blob/main/README.md). 4 | -------------------------------------------------------------------------------- /dev.mjs: -------------------------------------------------------------------------------- 1 | // content/docs 2 | // serve static on 3001 3 | 4 | import express from 'express'; 5 | import fs from 'fs'; 6 | import path from 'path'; 7 | import { fileURLToPath } from 'url'; 8 | 9 | const __dirname = path.dirname(fileURLToPath(import.meta.url)); 10 | 11 | const PORT = process.env.DEV_PORT || 3003; 12 | 13 | // TODO: ensure `DOCS_DIRECTORY` starts with `/` 14 | const DOCS_DIRECTORY = process.env.DIRECTORY || './src/pages'; 15 | 16 | const app = express(); 17 | console.log(path.resolve(__dirname, `./${DOCS_DIRECTORY}`)); 18 | app.use( 19 | express.static(path.resolve(__dirname, `./${DOCS_DIRECTORY}`), { 20 | setHeaders: (res) => { 21 | res.setHeader('last-modified', new Date().toGMTString()); 22 | }, 23 | }), 24 | ); 25 | 26 | app.listen(PORT, () => { 27 | console.debug(`Docs dev server is running on port ${PORT}`); 28 | }); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "adobe-dev-console", 4 | "version": "1.0.0", 5 | "license": "Apache-2.0", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/AdobeDocs/adobe-dev-console" 9 | }, 10 | "author": { 11 | "name": "Stephan Ringel", 12 | "url": "https://github.com/icaraps" 13 | }, 14 | "dependencies": { 15 | "@adobe/gatsby-theme-aio": "^4.14.18", 16 | "gatsby": "4.22.0", 17 | "react": "^17.0.2", 18 | "react-dom": "^17.0.2" 19 | }, 20 | "resolutions": { 21 | "sharp": "0.33.0", 22 | "gatsby-sharp": "1.12.0" 23 | }, 24 | "scripts": { 25 | "dev": "node ./dev.mjs", 26 | "buildNavigation": "npx --yes github:AdobeDocs/adp-devsite-utils buildNavigation -v", 27 | "buildRedirections": "npx --yes github:AdobeDocs/adp-devsite-utils buildRedirections -v", 28 | "renameFiles": "npx --yes github:AdobeDocs/adp-devsite-utils renameFiles -v", 29 | "normalizeLinks": "npx --yes github:AdobeDocs/adp-devsite-utils normalizeLinks -v", 30 | "checkLinks": "npx --yes github:AdobeDocs/adp-devsite-utils checkLinks -v", 31 | "buildSiteWideBanner": "npx --yes github:AdobeDocs/adp-devsite-utils buildSiteWideBanner -v", 32 | "lint": "npx --yes github:AdobeDocs/adp-devsite-utils runLint -v" 33 | }, 34 | "packageManager": "yarn@3.2.2", 35 | "devDependencies": { 36 | "glob": "11.0.0" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /samples/adobe-auth-node/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | server/cert.pem 3 | server/key.pem 4 | -------------------------------------------------------------------------------- /samples/adobe-auth-node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "adobe-auth-node", 3 | "version": "1.0.0", 4 | "description": "adobe auth node example", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node ./server/index.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "body-parser": "^1.18.2", 14 | "express": "^4.16.3", 15 | "express-session": "^1.15.6", 16 | "jade": "^1.11.0", 17 | "request": "^2.85.0", 18 | "request-promise": "^4.2.2" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /samples/adobe-auth-node/readme.md: -------------------------------------------------------------------------------- 1 | # OAuth 2.0 Example: Node.js 2 | 3 | This sample app will show you how to implement Adobe OAuth 2.0 using Node.js. 4 | 5 | After setting up the sample, you will have a Node.js app that: 6 | 7 | 1. Runs on `https://localhost:8000` 8 | 1. Lets a user log in with their Adobe ID 9 | 1. Prompts the user to authorize the app with requested scopes 10 | 1. Lets the user view their Adobe ID profile information 11 | 1. Lets the user log out 12 | 13 | 14 | 15 | 16 | 17 | ## Contents 18 | 19 | 1. [GitHub](#github) 20 | 1. [Technology Used](#technologyused) 21 | 1. [Prerequisites](#prerequisites) 22 | 1. [Configuration](#configuration) 23 | 1. [Create an OpenSSL cert](#createanopensslcert) 24 | 1. [Install Node.js packages](#installnodejspackages) 25 | 1. [Enter your Adobe API credentials](#enteryouradobeapicredentials) 26 | 1. [Usage](#usage) 27 | 1. [Other Resources](#otherresources) 28 | 29 | 30 | 31 | ## GitHub 32 | 33 | You can find a companion repo for this developer guide [on GitHub](https://github.com/adobeio/adobeio-documentation/tree/master/auth/OAuth2.0Endpoints/samples/adobe-auth-node). 34 | 35 | Be sure to follow all instructions in the `readme`. 36 | 37 | ## Technology Used 38 | 39 | 1. Node.js and the `npm` package manager 40 | 1. OpenSSL CLI 41 | 42 | ## Prerequisites 43 | 44 | This guide will assume that you have read the [Adobe OAuth 2.0 Guide for Web](../../web-oauth2.0-guide.md). 45 | 46 | You must also have [a registered app on the Adobe Developer Console](../../web-oauth2.0-guide.md#register-your-application-and-enable-apis) with the following settings: 47 | 48 | 1. `Platform`: web 49 | 1. `Default redirect URI`: `https://localhost:8000` 50 | 1. `Redirect URI Pattern`: `https://localhost:8000` 51 | 52 | ## Configuration 53 | 54 | The following steps will help you get this sample up and running. 55 | 56 | ### Create an OpenSSL cert 57 | 58 | Adobe OAuth 2.0 requires SSL, so you will need to create a self-signed cert using the OpenSSL CLI. Be sure to run this in the `./server` directory: 59 | 60 | ``` 61 | $ cd server 62 | $ openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365 63 | ``` 64 | 65 | Make sure that after running this command you have the `cert.pem` and `key.pem` files at the top level of the `.server` directory. 66 | 67 | ### Install Node.js packages 68 | 69 | The `package.json` file contains a list of dependencies. Run the following command from the top level directory of the app to install these dependencies: 70 | 71 | ``` 72 | $ cd .. 73 | $ npm install 74 | ``` 75 | 76 | ### Enter your Adobe API credentials 77 | 78 | Enter the required credentials in `public/config.js`: 79 | 80 | ```javascript 81 | const adobeApiKey = "YOUR_API_KEY"; 82 | const adobeApiSecret = "YOUR_API_SECRET"; 83 | 84 | try { 85 | if (module) { 86 | module.exports = { 87 | adobeApiKey: adobeApiKey, 88 | adobeApiSecret: adobeApiSecret, 89 | } 90 | } 91 | } 92 | catch (err) {} 93 | ``` 94 | 95 | You can get your Adobe API Key and Secret from your registered app page on the [Adobe Developer Console](../../web-oauth2.0-guide.md#register-your-application-and-enable-apis). 96 | 97 | 98 | ## Usage 99 | 100 | After completing the configuration steps, start the server: 101 | 102 | ``` 103 | $ npm start 104 | ``` 105 | 106 | To access the app, go to `https://localhost:8000`. Click through any cert warnings in the browser. 107 | 108 | ## Other Resources 109 | 110 | - [Adobe OAuth 2.0 Guide for Web](../../web-oauth2.0-guide.md) 111 | -------------------------------------------------------------------------------- /samples/adobe-auth-node/server/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const app = express(); 3 | const session = require('express-session') 4 | const request = require('request-promise'); 5 | const https = require('https'); 6 | const bodyParser = require('body-parser'); 7 | const adobeApiKey = require('../public/config.js').adobeApiKey; 8 | const adobeApiSecret = require('../public/config.js').adobeApiSecret; 9 | const fs = require('fs'); 10 | const path = require('path'); 11 | 12 | /* Declare host name and port */ 13 | const hostname = 'localhost'; 14 | const port = 8000; 15 | 16 | /* Middlewares */ 17 | app.use(bodyParser.json()); 18 | app.use(express.static(path.join(__dirname, '../public'))); 19 | app.set('views', path.join(__dirname, '../views')) 20 | app.set('view engine', 'jade') 21 | app.use(session({ 22 | /* Change this to your own secret value */ 23 | secret: 'this-is-secret', 24 | resave: true, 25 | saveUninitialized: true, 26 | cookie: { 27 | secure: false, 28 | maxAge: 6000000 29 | } 30 | })); 31 | 32 | /* Routes */ 33 | app.get('/', function (req, res) { 34 | res.render('index'); 35 | }) 36 | 37 | app.get('/login', function(req, res){ 38 | /* This will prompt user with the Adobe auth screen */ 39 | res.redirect(`https://ims-na1.adobelogin.com/ims/authorize?client_id=${adobeApiKey}&scope=openid,creative_sdk&response_type=code&redirect_uri=https://localhost:8000/callback`) 40 | }) 41 | 42 | app.get('/callback', function(req, res){ 43 | /* Retrieve authorization code from request */ 44 | let code = req.query.code; 45 | 46 | /* Set options with required paramters */ 47 | let requestOptions = { 48 | uri: `https://ims-na1.adobelogin.com/ims/token?grant_type=authorization_code&client_id=${adobeApiKey}&client_secret=${adobeApiSecret}&code=${code}`, 49 | method: 'POST', 50 | json: true 51 | } 52 | 53 | /* Send a POST request using the request library */ 54 | request(requestOptions) 55 | .then(function (response) { 56 | /* Store the token in req.session.token */ 57 | req.session.token = response.access_token; 58 | res.render('index', {'response':'User logged in!'}); 59 | }) 60 | .catch(function (error) { 61 | res.render('index', {'response':'Log in failed!'}); 62 | }); 63 | }) 64 | 65 | app.get('/profile', function(req, res){ 66 | if (req.session.token) { 67 | /* Grab the token stored in req.session 68 | and set options with required parameters */ 69 | let requestOptions = { 70 | uri: `https://ims-na1.adobelogin.com/ims/userinfo?client_id=${adobeApiKey}`, 71 | headers: { 72 | Authorization: `Bearer ${req.session.token}` 73 | }, 74 | json: true 75 | }; 76 | 77 | /* Send a GET request using the request library */ 78 | request(requestOptions) 79 | .then(function (response) { 80 | /* Send the received response back to the client side */ 81 | res.render('index', {'response':JSON.stringify(response)}); 82 | }) 83 | .catch(function (error) { 84 | console.log(error) 85 | }); 86 | 87 | } else { 88 | res.render('index', {'response':'You need to log in first'}); 89 | } 90 | }) 91 | 92 | /* Set up a HTTS server with the signed certification */ 93 | var httpsServer = https.createServer({ 94 | key: fs.readFileSync(path.join(__dirname, 'key.pem')), 95 | cert: fs.readFileSync(path.join(__dirname, 'cert.pem')) 96 | }, app).listen(port, hostname, (err) => { 97 | if (err) console.log(`Error: ${err}`); 98 | console.log(`listening on port ${port}!`); 99 | }); -------------------------------------------------------------------------------- /samples/adobe-auth-node/views/index.jade: -------------------------------------------------------------------------------- 1 | doctype 2 | html 3 | head 4 | title Adobe Auth Example 5 | link(rel='stylesheet', href='/stylesheets/style.css') 6 | body 7 | header 8 | h1 Adobe Auth App 9 | .button-group 10 | button(onclick="location.href='/login'") Log In with Adobe 11 | button(onclick="location.href='/profile'") Get Profile 12 | .canvas 13 | p #{response} -------------------------------------------------------------------------------- /samples/adobe-auth-python/.gitignore: -------------------------------------------------------------------------------- 1 | cert.pem 2 | key.pem 3 | *.pyc 4 | -------------------------------------------------------------------------------- /samples/adobe-auth-python/adobe-oauth2.0.py: -------------------------------------------------------------------------------- 1 | import os 2 | import flask 3 | import requests 4 | from six.moves import urllib 5 | import json 6 | 7 | # Start flask app 8 | app = flask.Flask(__name__) 9 | 10 | # Load config object from config.py 11 | app.config.from_object('config.Config') 12 | 13 | # Loading FLAST_SECRET from config.py 14 | app.secret_key = app.config['FLASK_SECRET'] 15 | 16 | @app.route('/') 17 | def home(): 18 | return flask.render_template('index.html') 19 | 20 | @app.route('/authorize') 21 | def authorize(): 22 | # Adobe OAuth2.0 authorization url 23 | authorization_url = 'https://ims-na1.adobelogin.com/ims/authorize?' 24 | 25 | # Store required parameters in a dictionary 26 | params = { 27 | 'client_id' : app.config['ADOBE_API_KEY'], 28 | 'scope' : 'openid,creative_sdk', 29 | 'response_type' : 'code', 30 | 'redirect_uri' : flask.url_for('callback', _external=True) 31 | } 32 | 33 | # This will prompt users with the approval page if consent has not been given 34 | # Once permission is provided, users will be redirected to the specified page 35 | return flask.redirect(authorization_url + urllib.parse.urlencode(params)) 36 | 37 | @app.route('/callback') 38 | def callback(): 39 | # Retrive the authorization code from callback 40 | authorization_code = flask.request.args.get('code') 41 | 42 | # Adobe OAuth2.0 token url 43 | token_url = 'https://ims-na1.adobelogin.com/ims/token' 44 | 45 | # Store required parameters in a dictionary 46 | # And include the authorization code in it 47 | params = { 48 | 'grant_type' : 'authorization_code', 49 | 'client_id' : app.config['ADOBE_API_KEY'], 50 | 'client_secret' : app.config['ADOBE_API_SECRET'], 51 | 'code' : authorization_code 52 | } 53 | 54 | # Use requests library to send the POST request 55 | response = requests.post(token_url, 56 | params = params, 57 | headers = {'content-type': 'application/x-www-form-urlencoded'}) 58 | 59 | # After receiving a 'OK' response, 60 | if response.status_code == 200: 61 | # save credentials to session 62 | flask.session['credentials'] = response.json() 63 | return flask.render_template('index.html', response='login success') 64 | else: 65 | return flask.render_template('index.html', response='login failed') 66 | 67 | @app.route('/profile') 68 | def profile(): 69 | # Check if credentials exist. If not, ask the user to log in 70 | if 'credentials' not in flask.session: 71 | return flask.render_template('index.html', response='Please log in first') 72 | else: 73 | # Retrive the access token from the flask session 74 | access_token = flask.session['credentials']['access_token'] 75 | 76 | # Adobe OAuth2.0 profile url 77 | profile_url = 'https://ims-na1.adobelogin.com/ims/userinfo' 78 | 79 | # Store required parameters in a dictionary 80 | params = { 81 | 'client_id' : app.config['ADOBE_API_KEY'] 82 | } 83 | 84 | # Use requests library to send the GET request 85 | response = requests.get(profile_url, 86 | params = params, 87 | headers = {'Authorization': 'Bearer {}'.format(access_token)}) 88 | 89 | if response.status_code == 200: 90 | return flask.render_template('index.html', response=json.dumps(response.json())) 91 | else: 92 | return flask.render_template('index.html', response='profile could not be retrieved') 93 | 94 | if __name__ == '__main__': 95 | # Make sure the hostname and port you provide match the valid redirect URI 96 | # specified in your project in the Adobe developer Console. 97 | # Also, make sure to have `cert.pem` and `key.pem` in your directory 98 | app.run('localhost', 8000, debug=True, ssl_context=('cert.pem', 'key.pem')) -------------------------------------------------------------------------------- /samples/adobe-auth-python/config.py: -------------------------------------------------------------------------------- 1 | class Config(object): 2 | # Replace below secret key with your secret 3 | # Reference: http://flask.pocoo.org/docs/0.12/quickstart/#sessions. 4 | FLASK_SECRET = 'PLACEHOLDER_SECRET_KEY' 5 | ADOBE_API_KEY = 'YOUR_ADOBE_KEY' 6 | ADOBE_API_SECRET = 'YOUR_ADOBE_SECRET' -------------------------------------------------------------------------------- /samples/adobe-auth-python/readme.md: -------------------------------------------------------------------------------- 1 | # OAuth 2.0 Example: Python 2 | 3 | This sample app will show you how to implement Adobe OAuth 2.0 in Python using the Flask framework. 4 | 5 | After setting up the sample, you will have a Python app that: 6 | 7 | 1. Serves `templates/index.html` on `https://localhost:8000` 8 | 1. Lets a user log in with their Adobe ID 9 | 1. Prompts the user to authorize the app with requested scopes 10 | 1. Lets the user view their Adobe ID profile information 11 | 1. Lets the user log out 12 | 13 | 14 | 15 | 16 | ## Contents 17 | 18 | 1. [GitHub](#github) 19 | 1. [Technology Used](#technologyused) 20 | 1. [Prerequisites](#prerequisites) 21 | 1. [Configuration](#configuration) 22 | 1. [Create an OpenSSL cert](#createanopensslcert) 23 | 1. [Install Python libraries](#installpythonlibraries) 24 | 1. [Enter your Flask secret and Adobe API credentials](#enteryourflasksecretandadobeapicredentials) 25 | 1. [Usage](#usage) 26 | 1. [Other Resources](#otherresources) 27 | 28 | 29 | 30 | ## GitHub 31 | 32 | You can find a companion repo for this developer guide [on GitHub](https://github.com/adobeio/adobeio-documentation/tree/master/auth/OAuth2.0Endpoints/samples/adobe-auth-python). 33 | 34 | Be sure to follow all instructions in the `readme`. 35 | 36 | 37 | ## Technology Used 38 | 39 | 1. Python 2.6 or greater and the `pip` package manager 40 | 1. OpenSSL CLI 41 | 42 | 43 | ## Prerequisites 44 | 45 | This guide will assume that you have read the [Adobe OAuth 2.0 Guide for Web](../../web-oauth2.0-guide.md). 46 | 47 | You must also have [a registered app on the Adobe Developer Console](../../web-oauth2.0-guide.md#register-your-application-and-enable-apis) with the following settings: 48 | 49 | 1. `Platform`: web 50 | 1. `Default redirect URI`: `https://localhost:8000` 51 | 1. `Redirect URI Pattern`: `https://localhost:8000` 52 | 53 | 54 | ## Configuration 55 | 56 | The following steps will help you get this sample up and running. 57 | 58 | 59 | ### Create an OpenSSL cert 60 | 61 | Adobe OAuth 2.0 requires SSL, so you will need to create a self-signed cert using the OpenSSL CLI: 62 | 63 | ``` 64 | $ openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365 65 | ``` 66 | 67 | Make sure that after running this command you have the `cert.pem` and `key.pem` files at the top level of the sample app. 68 | 69 | 70 | ### Install Python libraries 71 | 72 | This sample app uses the [Flask](http://flask.pocoo.org/), [Requests](http://docs.python-requests.org/), and [Six](https://pythonhosted.org/six/) libraries. You can install them using the `pip` package manager: 73 | 74 | ``` 75 | $ pip install flask 76 | $ pip install requests 77 | $ pip install six 78 | ``` 79 | 80 | 81 | ### Enter your Flask secret and Adobe API credentials 82 | 83 | Enter the required credentials in `config.py`: 84 | 85 | ``` 86 | class Config(object): 87 | FLASK_SECRET = 'PLACEHOLDER_SECRET_KEY' 88 | ADOBE_API_KEY = 'YOUR_ADOBE_KEY' 89 | ADOBE_API_SECRET = 'YOUR_ADOBE_SECRET' 90 | ``` 91 | 92 | You can get your Adobe API Key and Secret from your registered app page on the [Adobe Developer Console](../../web-oauth2.0-guide.md#register-your-application-and-enable-apis). 93 | 94 | 95 | ## Usage 96 | 97 | After completing the configuration steps, run `adobe-oauth2.0.py`: 98 | 99 | ``` 100 | $ python adobe-oauth2.0.py 101 | ``` 102 | 103 | To access the app, go to `https://localhost:8000`. Click through any cert warnings in the browser. 104 | 105 | 106 | ## Other Resources 107 | 108 | - [Adobe OAuth 2.0 Guide for Web](../../web-oauth2.0-guide.md) 109 | -------------------------------------------------------------------------------- /samples/adobe-auth-python/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Adobe Auth Example 6 | 7 | 8 |
9 |

Adobe Auth App

10 |
11 |
12 | 13 | 14 |
15 |
16 | {{ response }} 17 |
18 | 19 | -------------------------------------------------------------------------------- /src/pages/config.md: -------------------------------------------------------------------------------- 1 | - pathPrefix: 2 | - /developer-console/docs/ 3 | 4 | - pages: 5 | - [Developer Console](https://developer.adobe.com/developer-console/) 6 | - [Authentication Guide](guides/authentication/index.md) 7 | - [Documentation](guides/index.md) 8 | - [Support](support/index.md) 9 | 10 | - subPages: 11 | - [Developer Console](guides/index.md) 12 | - [Getting Started](guides/getting-started.md) 13 | - [Projects](guides/projects/index.md) 14 | - [Create an Empty Project](guides/projects/projects-empty.md) 15 | - [Create a Templated Project](guides/projects/projects-template.md) 16 | - [Projects Approval](guides/projects/approval.md) 17 | - [Beta Users](guides/projects/beta-users.md) 18 | - [Plugins](guides/plugins/index.md) 19 | - [Distribute a Plugin](guides/plugins/plugin-distribution.md) 20 | - [Update a Plugin](guides/plugins/plugin-update.md) 21 | - [Services](guides/services/index.md) 22 | - [Add API using OAuth Server-to-Server credential](guides/services/services-add-api-oauth-s2s.md) 23 | - [Add API using API Key credential](guides/services/services-add-api-key.md) 24 | - [Add API using OAuth User authentication credential](guides/services/services-add-api-oauth-user-authentication.md) 25 | - [Add Events](guides/services/services-add-event.md) 26 | - [Enable Runtime](guides/services/services-enable-runtime.md) 27 | - [Email Alerts](guides/email-alerts/index.md) 28 | - [Certificate Expiry](guides/email-alerts/cert-expiry.md) 29 | - [Credentials](guides/credentials.md) 30 | - [Insights](guides/insights.md) 31 | - [APIs and services](guides/apis-and-services.md) 32 | - [Public Profile](guides/public-profile.md) 33 | - [Quota](guides/quota.md) 34 | - [Authentication](guides/authentication/index.md) 35 | - [User Authentication](guides/authentication/UserAuthentication/index.md) 36 | - [Implementation Guide](guides/authentication/UserAuthentication/implementation.md) 37 | - [API Reference](guides/authentication/UserAuthentication/ims.md) 38 | - [Server to Server Authentication](guides/authentication/ServerToServerAuthentication/index.md) 39 | - [Implementation Guide](guides/authentication/ServerToServerAuthentication/implementation.md) 40 | - [Migration Guide](guides/authentication/ServerToServerAuthentication/migration.md) 41 | - [Migration FAQs](guides/authentication/ServerToServerAuthentication/faqs.md) 42 | - [API Reference](guides/authentication/ServerToServerAuthentication/ims.md) 43 | - [API Key Authentication](guides/authentication/APIKeyAuthentication/index.md) 44 | - [Admin Authentication](guides/authentication/AdminAuthentication/index.md) 45 | - [Implementation Guide](guides/authentication/AdminAuthentication/implementation.md) 46 | - [Sample Code](guides/authentication/AdminAuthentication/samples.md) 47 | - [API Reference](guides/authentication/AdminAuthentication/ims.md) 48 | - [Tools](guides/authentication/Tools/index.md) 49 | - [OAuth 2.0 Playground](guides/authentication/Tools/o-auth-playground.md) 50 | - [Postman](guides/authentication/Tools/postman.md) 51 | - [Support](support/index.md) 52 | - [FAQ](support/faq.md) 53 | -------------------------------------------------------------------------------- /src/pages/guides/apis-and-services.md: -------------------------------------------------------------------------------- 1 | # APIs and services 2 | 3 | Adobe Developer Console gives you access to a variety of APIs, Events, SDKs and other services for many of Adobe's most powerful and popular products and technologies. The *APIs and services* pages provides an easy way to browse all available services and create a project. 4 | 5 | ![APIS_and_services](../images/apis-and-services.png) 6 | 7 | ## APIs 8 | 9 | The *APIs* tab shows all currently available Adobe APIs. This list is updated on a regular basis, so keep an eye out for new offerings. Use Search, Filter by Product or View to narrow down the options. 10 | 11 | Many services require a license to use. If the option to add the service to a project is not available, you either do not have an active license or permissions to access to that service. Contact your system administrator to request access. 12 | 13 | ## Events 14 | 15 | The *Events* tab shows Adobe and custom events available for your organization. Use Search or Filter by Product to narrow down the options. To learn more about Adobe I/O Events, read the [events documentation](https://www.adobe.com/go/devs_events). 16 | 17 | ## Plugins 18 | 19 | The *Plugins* tab shows those Adobe products that currently support plugin creation and submission via the Adobe Developer Console. To find out more, please visit the [plugin overview](plugins/index.md). 20 | 21 | ## Runtime 22 | 23 | Adobe I/O Runtime is Adobe’s serverless computing platform. Adobe I/O Runtime is only available for enterprise customers and requires a license. Please contact your Adobe sales representative for more details. 24 | 25 | ## Downloads 26 | 27 | The *Downloads* tab shows a listing of available SDKs for Adobe products and technologies. As new SDKs become available, the list is automatically updated. 28 | 29 | When you select one of the product or technology cards, details regarding that SDK appear, including a brief description, links to documentation (where available), and configuration details. 30 | 31 | To begin using an SDK, select the appropriate values from the options provided in order to configure the SDK for your needs. Note that the possible configuration values vary by SDK. 32 | 33 | ![Selecting an SDK](../images/download-details.png) 34 | 35 | 36 | ## Download history 37 | 38 | In the *Download history* tab, you can view the history of SDKs that you have downloaded, as well as information related to the SDK configuration and the date of download. 39 | 40 | ![Download history](../images/download-sdk-history.png) 41 | -------------------------------------------------------------------------------- /src/pages/guides/authentication/APIKeyAuthentication/index.md: -------------------------------------------------------------------------------- 1 | # API key Authentication 2 | 3 | If your application needs to integrate with an Adobe offering that supports unauthenticated workflows (does not require access tokens), you can do so by using the API key credential. The API key credential identifies your application to Adobe servers and can help accept/reject requests originating from certain domains that you configure during credential setup. 4 | 5 | ## Understanding different uses of the API key credential 6 | 7 | ### Embedding Adobe web experiences on your website 8 | 9 | Some APIs allow you to generate API Key credentials to embed an Adobe web experience on your website. For example, Adobe Express Embed SDK and PDF Embed API are two such APIs. These APIs only need to identify your application using your application's API key. 10 | 11 | To ensure that your API key is not misused, Adobe servers reject API calls that do not originate from your website's domains. During credential setup, you can configure your website's domains for your API key credential. 12 | 13 | ### Calling APIs that do not require an access token 14 | 15 | A small collection of Adobe services (e.g., API Mesh for App Builder, Adobe Stock) do not require an access token for API requests. These services can be called *"anonymously"* and typically provide consistent results regardless of the application or user that made the request. Such APIs can be called with an API Key credential. 16 | 17 | You can create a project with the Adobe Stock API to try it out. Then use the API key to make an API request, as shown in the cURL command below. 18 | 19 | ```curl 20 | curl 'https://stock.adobe.io/Rest/Media/1/Search/Files?locale=en_US%26search_parameters%5Bwords%5D=kittens ' 21 | -H 'x-product:testapp' 22 | -H 'x-api-key:YOUR-API-KEY-HERE' 23 | ``` 24 | 25 | ## API Key credential 26 | 27 | As the name suggests, the API Key credential only contains an API key and no secrets. It cannot be used to generate access tokens. An API key credential only allows Adobe servers to identify the application but cannot authenticate a user or the application. 28 | 29 | ### Understanding Allowed Origins 30 | 31 | Some Adobe APIs do not require an access token, only an API key, to be called. However, such an API may still need to prevent your API key from being copied by a malicious actor and misused. 32 | 33 | To prevent bad actors from using your API key, Adobe servers only accept API requests originating from your website and reject any other API requests. Adobe servers determine whether the request originates from your website by relying on the Origin HTTP request header that a browser sends with each request. 34 | 35 | To ensure that Adobe servers accept API requests from all the domains your application uses, you must add those domains as 'allow listed origins' during API Key credential setup. 36 | 37 | You can configure up to 5 comma-separated domains, use wildcards to club together multiple subdomains and specify any non-privileged port numbers. You can edit these domains any time by visiting your project on the Adobe Developer Console. -------------------------------------------------------------------------------- /src/pages/guides/authentication/AdminAuthentication/index.md: -------------------------------------------------------------------------------- 1 | # Admin authentication 2 | 3 | Admin authentication enables partner-built apps to read and modify Adobe enterprise customer data with their explicit consent. 4 | 5 | If you are an Adobe Technology Partner Program (TPP) partner and your application needs to read or modify data owned by an Adobe enterprise customer organization, you can use an Admin authentication credential. 6 | 7 | However, before your application can access customer data, an administrator from the customer’s organization must explicitly grant consent to your application and assign relevant product profiles. 8 | 9 | Note: The admin always remains in control and can modify the assigned product profiles or revoke your app's consent at any time. 10 | 11 | 12 | 13 | Admin authentication and the Enterprise Web App credential is only available to Adobe Technology Partner Program (TPP) partners. 14 | 15 | 16 | ## Whose data can you access with Admin authentication? 17 | 18 | Admin authentication enables partner-built apps to read and modify Adobe enterprise customer data. Previously, enterprise customer data could only be manipulated through server to server authentication. Therefore, a customer had to build the app themselves or plug in their server-to-server credentials in partner-built apps. 19 | 20 | With Admin authentication a partner application can use a single credential, yet multiple customers can install the app. The customer no longer needs to supply their credentials to partner apps, thereby, strengthening their security posture. Furthermore, the partner apps built with Admin authentication are click-to-install apps which can be installed without the help of an IT department on the customer organization. 21 | 22 | To better understand the nuances of admin authentication, let's compare it to other supported authentication types. 23 | 24 | | | Who builds the app? | What data can the app access? | How is data access governed? | 25 | |---------------------------------|----------------------------------|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 26 | | Admin authentication | Adobe Technology Partner Program partner | Adobe enterprise customer data | Customer admin can limit data access using product profiles. The customer admin needs to consent to the app first. The customer admin can revoke consent at any time. | 27 | | Server to server authentication | Adobe enterprise customer | Adobe enterprise customer data | Admins and developers can limit data access using product profiles. Data access can be removed at any time by removing product profiles or deleting the project. | 28 | | User authentication | Adobe partner | Adobe end user data | The app requests access to data by requesting specific scopes. The Adobe end user needs to consent to the app and the list of scopes to grant access to the app. The user can revoke consent at any time. | 29 | 30 | 31 | ## Enterprise Web App credential 32 | 33 | Adobe supports the Enterprise Web App credential for admin authentication, allowing partners to build click-to-install applications that interact securely with Adobe enterprise customer data. 34 | 35 | Once a customer admin installs the app and provides consent to it, a technical account is set up in the customer org and linked to the partner app. The customer admin can control what data the partner app can access by managing the product profiles assigned to the technical account. Meanwhile, the partner app can generate access tokens for this technical account by using its own client id and secret. 36 | 37 | To safeguard customer data, the Enterprise Web App credential requires the partner app to have a secure backend server. The backend server is responsible for implementing the security features of credential and generating access tokens. 38 | 39 | ### How does it work? 40 | 41 | The following diagram depicts the high level workflow through which a partner app can generate access tokens for the technical accounts in customer orgs. 42 | 43 | ![](../../../images/enterprise-web-app-generate-access-token-uml.png) 44 | 45 | 1. The workflow starts when the customer admin visits the partner app and clicks on the Connect with Adobe button to connect their Adobe organization to the partner app. 46 | 2. The customer admin is redirected to the Adobe IMS consent screen to provide consent to the partner app. Once the admin consents to the partner app to access their org's data, a technical account is created in the customer organization. 47 | 3. After the admin provides consent, the admin is redirected back to the partner app. The redirect URL was supplied by the partner during Enterprise Web App credential set up. 48 | 4. The partner app receives the redirect and verifies that it came from Adobe by validating the `id_token`, `state`, and `nonce` parameters in the redirect. 49 | 5. If verification passes, the partner app links the customer org to the logged in account. At this point, the partner app can use its `client_id` and `client_secret` and the customer `org_id` to generate access tokens. 50 | 6. Finally, the customer admin has completed the consent workflow and connected their Adobe org to the partner app. The customer admin can now navigate to the [Adobe Exchange manage page](https://exchange.adobe.com/manage) and assign product profiles to the newly set up technical account. 51 | 52 | 53 | 54 | Note: The customer admin can visit the [Adobe Exchange manage page](https://exchange.adobe.com/manage) to revoke consent to the partner app at any time. After the admin revokes consent, the partner app can no longer generate access tokens on this customer's behalf. All existing tokens will stop working within an hour. 55 | 56 | 57 | ## Development Next Steps 58 | 59 | 1. Read the [implementation guide](implementation.md) to start implementing the Enterprise Web App credential. 60 | 2. Read the [API Reference](ims.md) to view details about the token generation request, consent URL parameters, and supported parameters & error codes in the redirect. 61 | 3. Read the [submission guide](https://www.adobe.com/go/dd_ExperienceCloud_Submissions) to submit your app for Adobe review. -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/OP_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/OP_1.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/OP_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/OP_2.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/OP_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/OP_3.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/OP_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/OP_4.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/OP_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/OP_5.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PMW_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PMW_1.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PMW_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PMW_2.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PMW_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PMW_3.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_1.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_2.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_3.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_4.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_5.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_6.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_JWT_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_JWT_1.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_JWT_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_JWT_2.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_JWT_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_JWT_3.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_JWT_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_JWT_4.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/PM_JWT_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/PM_JWT_5.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/access_grant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/access_grant.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/api-key-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/api-key-1.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/api-key-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/api-key-2.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/api-key-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/api-key-3.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/api-key-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/api-key-4.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/api-key-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/api-key-5.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/api-key-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/api-key-6.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/api-key-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/api-key-7.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/auth_jwtqs_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/auth_jwtqs_00.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/auth_jwtqs_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/auth_jwtqs_000.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/auth_jwtqs_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/auth_jwtqs_01.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/auth_jwtqs_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/auth_jwtqs_02.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/auth_jwtqs_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/auth_jwtqs_03.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/auth_jwtqs_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/auth_jwtqs_04.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/auth_jwtqs_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/auth_jwtqs_05.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/auth_jwtqs_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/auth_jwtqs_06.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/auth_jwtqs_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/auth_jwtqs_07.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/auth_jwtqs_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/auth_jwtqs_08.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/credentials_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/credentials_page.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/login_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/login_screen.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/oauth-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/oauth-0.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/oauth-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/oauth-1.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/oauth-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/oauth-2.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/oauth-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/oauth-3.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/oauth-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/oauth-4.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/oauth-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/oauth-5.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/Images/oauth-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/guides/authentication/Images/oauth-6.png -------------------------------------------------------------------------------- /src/pages/guides/authentication/JWT/faq.md: -------------------------------------------------------------------------------- 1 | # Frequently Asked Questions 2 | 3 | 4 | 5 | As of June 30, 2025, Service Account (JWT) credentials have reached their end of life and are no longer supported. All server-to-server integrations must use the [OAuth Server-to-Server credentials](../authentication/ServerToServerAuthentication/implementation.md). View the [migration guide](../authentication/ServerToServerAuthentication/migration.md) to know more. -------------------------------------------------------------------------------- /src/pages/guides/authentication/JWT/index.md: -------------------------------------------------------------------------------- 1 | # Service Account (JWT) Authentication 2 | 3 | 4 | 5 | As of June 30, 2025, Service Account (JWT) credentials have reached their end of life and are no longer supported. All server-to-server integrations must use the [OAuth Server-to-Server credentials](../ServerToServerAuthentication/implementation.md). View the [migration guide](../ServerToServerAuthentication/migration.md) to know more. 6 | -------------------------------------------------------------------------------- /src/pages/guides/authentication/JWT/jwt-certificate.md: -------------------------------------------------------------------------------- 1 | # Create a Public Key Certificate 2 | 3 | 4 | 5 | As of June 30, 2025, Service Account (JWT) credentials have reached their end of life and are no longer supported. All server-to-server integrations must use the [OAuth Server-to-Server credentials](../authentication/ServerToServerAuthentication/implementation.md). View the [migration guide](../authentication/ServerToServerAuthentication/migration.md) to know more. -------------------------------------------------------------------------------- /src/pages/guides/authentication/JWT/samples.md: -------------------------------------------------------------------------------- 1 | ## Sample Code 2 | 3 | 4 | 5 | 6 | As of June 30, 2025, Service Account (JWT) credentials have reached their end of life and are no longer supported. All server-to-server integrations must use the [OAuth Server-to-Server credentials](../authentication/ServerToServerAuthentication/implementation.md). View the [migration guide](../authentication/ServerToServerAuthentication/migration.md) to know more. -------------------------------------------------------------------------------- /src/pages/guides/authentication/JWT/scopes.md: -------------------------------------------------------------------------------- 1 | # JWT Metascopes 2 | 3 | 4 | 5 | 6 | As of June 30, 2025, Service Account (JWT) credentials have reached their end of life and are no longer supported. All server-to-server integrations must use the [OAuth Server-to-Server credentials](../authentication/ServerToServerAuthentication/implementation.md). View the [migration guide](../authentication/ServerToServerAuthentication/migration.md) to know more. -------------------------------------------------------------------------------- /src/pages/guides/authentication/OAuth/index.md: -------------------------------------------------------------------------------- 1 | # OAuth 2.0 Authentication and Authorization 2 | 3 | 4 | 5 | 6 | The information on this page has been moved to our [user authentication guide](../UserAuthentication/index.md). -------------------------------------------------------------------------------- /src/pages/guides/authentication/OAuth/samples.md: -------------------------------------------------------------------------------- 1 | # Sample Code 2 | 3 | 4 | 5 | The information on this page has been moved to our [user authentication implementation guide](../UserAuthentication/implementation.md#standard-oauth2-libraries). -------------------------------------------------------------------------------- /src/pages/guides/authentication/OAuth/scopes.md: -------------------------------------------------------------------------------- 1 | # OAuth 2.0 Samples 2 | 3 | 4 | 5 | The information on this page has been moved to our [user authentication implementation guide](../UserAuthentication/implementation.md#oauth-20-scopes). 6 | -------------------------------------------------------------------------------- /src/pages/guides/authentication/ServerToServerAuthentication/index.md: -------------------------------------------------------------------------------- 1 | # Server to Server authentication 2 | 3 | Server to server authentication credentials allow your application's server to generate access tokens and make API calls on behalf of your application itself. 4 | 5 | In the OAuth 2.0 framework, server to server authentication is called 2-legged OAuth. It is called so because, unlike 3-legged OAuth, it involves only two parties - Adobe and your application. 6 | 7 | For your application to generate an access token, an end-user does not need to sign in or provide consent to your application. Instead, your application can use its credentials (client id and secrets) to authenticate itself and generate access tokens. Your application can then use the generated access token to call Adobe APIs and services on its behalf. 8 | 9 | ## Whose data can you access with a server to server credential? 10 | 11 | The token generation process for a server to server credential only authenticates your application. Therefore, the generated access token can only be used to read and modify data owned by your application. 12 | 13 | For example, you can use the PDF Services API to generate a PDF from an invoice template and a JSON object containing the data you pass to the API. In this case, no user's data was accessed, and the application is manipulating data it already owns or has access to. 14 | 15 | Apart from the data owned by the application, a server to server credential can also read and modify data owned by your organization. 16 | 17 | For example, the Adobe Analytics API allows you to pull reporting data for your website using the server to server credential. 18 | 19 | When you create a server to server credential on the Adobe Developer Console, only your organization can access its client id and secret. Therefore, when your application generates an access token using those credentials - it can only do so because your organization has supplied the client_id and client_secret to the application. In other words, your application is developed and trusted by your organization; therefore, the application can access your organization's data. 20 | 21 | However, no access to data is given out by default. Instead, when you create a server to server credential, you must configure the set of product profiles to be assigned to this credential. These product profiles then govern what data the application can access in your organization. 22 | 23 | You can also modify the set of product profiles by returning to your project on the Adobe Developer Console. As an admin, you can manage the product profiles assigned to different applications by visiting the [Adobe Admin Console](https://adminconsole.adobe.com/) > Users > API credentials tab. 24 | 25 | ## OAuth Server-to-Server credential 26 | 27 | Adobe supports the OAuth Server-to-Server to credential to perform server-to-server authentication. The OAuth Server-to-Server credential relies on the OAuth 2.0 `client_credentials` grant type to generate access tokens. To generate an access token, your application can make a single HTTP request with your `client_id` and `client_secret` and `scopes`. 28 | 29 | As the token generation logic uses your `client_secret`, this logic must be implemented on a secure backend server to prevent malicious actors from accessing your secrets. We recommend using standard OAuth libraries to implement access token generation. 30 | 31 | Read our OAuth Server-to-server credential implementation guide - 32 | 33 | 1. [Generating access tokens using cURL](./implementation.md#generate-access-tokens) 34 | 2. [Generating access tokens programmatically using standard OAuth2 libraries](./implementation.md#rotating-client-secrets-programmatically) 35 | 3. [Migrating from Service Account (JWT) credentials to OAuth Server-to-Server credentials](./migration.md) 36 | 4. [API reference](./ims.md) -------------------------------------------------------------------------------- /src/pages/guides/authentication/Tools/index.md: -------------------------------------------------------------------------------- 1 | 2 | # Tools Overview 3 | 4 | 5 | ## OAuth 2.0 Playground 6 | Do you have an OAuth integration created? 7 | 8 | [Try the OAuth 2.0 Playground tool](o-auth-playground.md) to generate an access token. 9 | 10 | ## Postman 11 | 12 | [Try Postman for generating an access token](postman.md) for both OAuth and Service Account Integration. 13 | -------------------------------------------------------------------------------- /src/pages/guides/authentication/Tools/o-auth-playground.md: -------------------------------------------------------------------------------- 1 | # OAuth 2.0 Playground 2 | 3 | The OAuth 2.0 Playground is an Adobe internet utility that enables developers to easily obtain an OAuth 2.0 access token for use in building and testing their integrations. Before you use the OAuth 2.0 Playground, you should already have created an integration you want to use for this purpose. The OAuth 2.0 Playground source code is also available for you to view and experiment with. 4 | 5 | ## Steps to obtain a token: 6 | 7 | 1. Go to [OAuth 2.0 Playground](https://adobeioruntime.net/api/v1/web/io-solutions/adobe-oauth-playground/oauth.html) 8 | 9 | ![op-1](../Images/OP_1.png) 10 | 11 | 2. Go to the [Adobe Developer Console](https://developer.adobe.com/console/) 12 | 13 | 3. Create a project within Console. For complete steps to creating a project in Console, begin by reading the [Adobe Developer Console getting started guide](../../getting-started.md) and [projects overview](../../projects/index.md). 14 | 15 | 4. Once you have created a project, you will be able to add services including APIs, Adobe I/O Events registrations, and Adobe I/O Runtime. Add an API to your project and then select the services with which you wish to integrate (such as Adobe Analytics > OAuth 2.0 Integration) 16 | 17 | To add an API that uses OAuth authentication and authorization, follow the steps outlined in the guide for [adding an API to a project using OAuth authentication](../../services/services-add-api-oauth.md). 18 | 19 | When the API has been successfully connected, you will be able to access the newly generated credentials including Client ID and Client Secret. 20 | 21 | 5. Copy your **Client ID** (API Key) and **Client Secret** from Adobe Developer Console into the OAuth 2.0 Playground. 22 | 23 | 6. Enter scopes as: 24 | ```openid,read_organizations,additional_info.projectedProductContext,additional_info.job_function``` 25 | 26 | ![op-3](../Images/OP_3.png) 27 | 28 | 7. Click **Generate Tokens.** 29 | 30 | 8. You will be prompted for login by Adobe. Log in using your Adobe ID. 31 | 32 | ![op-4](../Images/OP_4.png) 33 | 34 | 9. Your tokens will be generated. 35 | 36 | ![op-5](../Images/OP_5.png) 37 | -------------------------------------------------------------------------------- /src/pages/guides/authentication/Tools/postman.md: -------------------------------------------------------------------------------- 1 | # Postman 2 | 3 | ## OAuth Access Token 4 | 5 | ### Steps 6 | 7 | 1. Install [Postman](https://www.getpostman.com/downloads/) 8 | 9 | 2. Open Postman 10 | 11 | 3. Create a `new request`. 12 | 13 | ![pm-1](../Images/PM_1.png) 14 | 15 | 4. Click on `Authorization` and select `OAuth 2.0` from Type dropdown menu. 16 | 17 | ![pm-2](../Images/PM_2.png) 18 | 19 | 5. Click on `Get New Access Token`. 20 | 21 | ![pm-3](../Images/PM_3.png) 22 | 23 | 6. Copy your `API Key (Client ID)`, `Client Secret` and the `Default Redirect URI` from your Adobe Developer Console integration and paste it in the Postman `GET NEW ACCESS TOKEN` window. Assuming you are trying to get an access token for Adobe Analytics use below for scope: 24 | ``` 25 | openid,AdobeID,read_organizations,additional_info.projectedProductContext,additional_info.job_function 26 | ``` 27 | 28 | *Note: If you are not sure about scope, refer to [Scope Reference](../OAuth/scopes.md).* 29 | 30 | ![pm-4](../Images/PM_4.png) 31 | 32 | 7. You will be prompted for login by Adobe. Login using your Adobe ID. 33 | 34 | ![pm-5](../Images/PM_5.png) 35 | 36 | 8. Your access token will be generated. 37 | 38 | ![pm-6](../Images/PM_6.png) 39 | 40 | 41 | ## CURL Requests in Windows 42 | 43 | In API Documentation, sample CURL requests are common and helpful for the developers. Mac and Linux terminals are capable of executing such CURL requests but the Windows command prompt doesn't support it out of the box. 44 | 45 | For windows users, you can follow below steps to execute the CURL requests easily by using Postman. 46 | 47 | ### Steps 48 | 49 | 1. Copy the CURL Request. 50 | e.g. 51 | ``` 52 | curl https://stock.adobe.io/Rest/Media/1/Search/Files?locale=en_US%26search_parameters%5Bwords%5D=kittens 53 | -H 'x-api-key:myAPIKey' 54 | -H 'x-product:myTestApp1.0' 55 | ``` 56 | 57 | 2. Open Postman. Click `Import` -> `Paste Raw Text` -> Paste the CURL request. 58 | 59 | ![pmw-1](../Images/PMW_1.png) 60 | 61 | 3. Go to `Headers` tab and replace `myAPIKey` with your actual API Key from Adobe Developer Console integration for Adobe Stock. 62 | 63 | ![pmw-2](../Images/PMW_2.png) 64 | 65 | 4. Click Send. You will receive a response. 66 | 67 | ![pmw-3](../Images/PMW_3.png) 68 | 69 | *Note: You can import any CURL Request into Postman by following the above steps.* -------------------------------------------------------------------------------- /src/pages/guides/authentication/api-key-integration.md: -------------------------------------------------------------------------------- 1 | # API Key Connection 2 | 3 | 4 | 5 | This page has been removed. Learn about the API Key credential on our guide on [API Key authentication](./APIKeyAuthentication/index.md). 6 | -------------------------------------------------------------------------------- /src/pages/guides/authentication/ims.md: -------------------------------------------------------------------------------- 1 | # Authentication API Reference 2 | 3 | 4 | 5 | This page has been moved to our [User Authentication API Reference](./UserAuthentication/ims.md). 6 | -------------------------------------------------------------------------------- /src/pages/guides/authentication/index.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Authentication Guide 4 | 5 | Learn how to integrate with Adobe products and services in your application securely. The following guide is a technical reference for the Adobe supported authentication types available to your application. 6 | 7 | ## Overview 8 | 9 | Adobe is committed to the privacy and security of our users and their data. Therefore, understanding various authentication and authorization mechanisms is uniquely important for a developer integrating with Adobe products and services. 10 | 11 | Depending on the Adobe product or service you are integrating into your app, you may be required to use one or more of the authentication types listed below. Each authentication type has different credential types supporting different platforms (web, mobile, desktop, etc.). 12 | 13 | 1. [User authentication](./UserAuthentication/index.md) 14 | * [OAuth Web App credential](./UserAuthentication/implementation.md#oauth-web-app-credential) 15 | * [OAuth Single Page App credential](./UserAuthentication/implementation.md#oauth-single-page-app-credential) 16 | * [OAuth Native App credential](./UserAuthentication/implementation.md#oauth-native-app-credential) 17 | 18 | 2. [Server to server authentication](./ServerToServerAuthentication/index.md) 19 | * [OAuth Server to Server credential](./ServerToServerAuthentication/index.md#oauth-server-to-server-credential) 20 | 21 | 3. [API key authentication](./APIKeyAuthentication/index.md) 22 | * [API Key credential](./APIKeyAuthentication/index.md#api-key-credential) 23 | 24 | 4. [Admin authentication](./AdminAuthentication/index.md) 25 | * [Enterprise Web App credential](./AdminAuthentication/index.md#enterprise-web-app-credential) 26 | 27 | ## User authentication 28 | 29 | If your application needs to read or modify the data owned by an Adobe end-user, it can do so using a user authentication credential. However, before your application can view or edit the user's data, the user would need to provide explicit 'consent' to your application. 30 | 31 | View our guide on user authentication credentials - 32 | 1. [Understanding OAuth 2.0 `authorization_code` grant flow (3-legged OAuth)](./UserAuthentication/index.md) 33 | 2. [Learning about the different user authentication credential types](./UserAuthentication/implementation.md#user-authentication-credential-types) 34 | 3. [Understanding default redirect URI and redirect URI pattern](./UserAuthentication/implementation.md#understanding-default-redirect-uri-and-redirect-uri-patterns) 35 | 4. [Implementing user authentication using standard OAuth2 libraries](./UserAuthentication/implementation.md#standard-oauth2-libraries) 36 | 37 | 38 | ## Server to server authentication 39 | 40 | If your application needs to read or modify data owned by your application or your organization, you can use a server to server authentication credential. Server to server authentication credentials only allow you to access your application's data or your organization's data and, therefore, do not require an end user to sign in. 41 | 42 | View our guide on server to server authentication credentials - 43 | 1. [Understanding server to server credentials](./ServerToServerAuthentication/index.md) 44 | 2. [Learning about the different Server to server authentication credential types](./ServerToServerAuthentication/index.md#server-to-server-credential-types) 45 | 3. [Setting up the credential - credential name, product profiles](./ServerToServerAuthentication/implementation.md#setting-up-the-oauth-server-to-server-credential) 46 | 4. [Implementing server to server authentication using standard OAuth2 libraries](./ServerToServerAuthentication/implementation.md#generating-access-tokens-using-standard-oauth2-libraries) 47 | 5. [Rotating client secrets programmatically](./ServerToServerAuthentication/implementation.md#rotating-client-secrets-programmatically) 48 | 49 | 50 | 51 | 52 | As of June 30, 2025, Service Account (JWT) credentials have reached their end of life and are no longer supported. All server-to-server integrations must use the [OAuth Server-to-Server credentials](../authentication/ServerToServerAuthentication/implementation.md). View the [migration guide](../authentication/ServerToServerAuthentication/migration.md) to know more. 53 | 54 | 55 | ## API key authentication 56 | 57 | If your application needs to integrate with an Adobe offering that supports unauthenticated workflows (does not require access tokens), you can do so by using API key credential. The API key credential identifies your application to Adobe servers and can help accept/reject requests originating from certain domains that you configure during credential setup. 58 | 59 | View our guide on API key credentials - 60 | 1. [Understanding different uses of the API key credential](./APIKeyAuthentication/index.md#understanding-different-uses-of-the-api-key-credential) 61 | 2. [Understanding allowed origins](./APIKeyAuthentication/index.md#understanding-allowed-origins) 62 | 63 | 64 | ## Admin authentication 65 | 66 | If you are an Adobe Technology Program Partner and your application needs to read or modify the data of an Adobe enterprise customer, you can do so using an admin authentication credential. However, before your application can view or edit the customer's data, a customer admin would need to provide explicit 'consent' to your application. 67 | 68 | View our guide on admin authentication credentials - 69 | 1. [Understanding admin authentication credentials](./AdminAuthentication/index.md) 70 | 2. [Understanding how the Enterprise Web App credential works](./AdminAuthentication/index.md#enterprise-web-app-credential) 71 | 3. [Implementing the Enterprise Web App credential](./AdminAuthentication/implementation.md) -------------------------------------------------------------------------------- /src/pages/guides/authentication/o-auth-integration.md: -------------------------------------------------------------------------------- 1 | # OAuth Connection 2 | 3 | 4 | 5 | This page has been removed. Learn about the different OAuth credentials on our [authentication guide](../index.md). 6 | -------------------------------------------------------------------------------- /src/pages/guides/authentication/service-account-integration.md: -------------------------------------------------------------------------------- 1 | # Service Account Connection 2 | 3 | 4 | 5 | As of June 30, 2025, Service Account (JWT) credentials have reached their end of life and are no longer supported. All server-to-server integrations must use the [OAuth Server-to-Server credentials](../authentication/ServerToServerAuthentication/implementation.md). View the [migration guide](../authentication/ServerToServerAuthentication/migration.md) to know more. -------------------------------------------------------------------------------- /src/pages/guides/credentials.md: -------------------------------------------------------------------------------- 1 | # Credentials 2 | 3 | Once you have successfully added APIs to your project or workspace, you can return to the *Project overview* (or *Workspace overview* in a templated project) at any time to view the details for that API and any other project services you may have added. 4 | 5 | 6 | 7 | To view credentials for events, select the specific event registration from the left navigation and then select the *Credentials* tab. For more information on working with events, including viewing event credentials, follow the [guide for adding events to a project](services/services-add-event.md). 8 | 9 | ![](../images/credentials-project-overview.png) 10 | 11 | ## Credential details 12 | 13 | You can select a specific API from the left navigation to view its details or you can select a credential type under *Credentials* in the left navigation in order to view the *Credential details* and perform other actions (generate access tokens, copy credential details, retrieve client secrets, etc.) as needed. 14 | 15 | If multiple services have been added to the project or workspace using the same credentials, they will each be listed under the *Connected products and services* on the right-hand side of the details tab. 16 | 17 | For example, selecting **OAuth Server-to-Server** under *Credentials* will open the *Credential details* for all products and services connected using this credential. 18 | 19 | ![](../images/credentials-details.png) 20 | 21 | ## Generate Access token 22 | 23 | If you selected **OAuth Server-to-Server** under *Credentials* you will be presented with the *Credential details* for all products and services connected using this credential. 24 | 25 | To generate a token, click on the button "Generate access token" 26 | 27 | ![](../images/services-api-oauth-s2s-generate-token-2.png) 28 | 29 | You can also view the cURL command you could use to generate access tokens programmatically. 30 | 31 | ![](../images/services-api-oauth-s2s-view-curl-command.png) 32 | 33 | You can also view the scopes per service to generate an access token that only works for a subset of services in your project. 34 | 35 | ![](../images/services-api-oauth-s2s-view-scopes.png) 36 | 37 | ## OAuth User authentication 38 | 39 | By selecting an OAuth User authentication credential under *Credentials*, you will be shown all products and services connected to your project using OAuth 2.0 authenication and authorization. 40 | 41 | From here, you can view and copy the *Client ID*, retrieve the client secret, and view the *Platform* type as well as the *Redirect URL*. 42 | 43 | Within the *Credential details* screen you can also choose to download the OAuth JSON file, edit the credential, or delete the credential using the buttons provided in the top-right corner of the screen. 44 | 45 | ![](../images/services-api-oauth-user-auth-credential-overview.png) 46 | 47 | ## API key 48 | 49 | The API key *Credential details* display any products or services connected using an API key for authentication, as well as the API key itself and the ability to copy it for use. 50 | 51 | ![](../images/credentials-api-key.png) 52 | 53 | ## Next steps 54 | 55 | To add additional services to your project or workspace, please visit the [services overview](services/index.md). -------------------------------------------------------------------------------- /src/pages/guides/email-alerts/index.md: -------------------------------------------------------------------------------- 1 | # Email alerts 2 | 3 | Based on the APIs, Events, and other services added to your Project on the Developer Console, Adobe can sometimes detect a potential or ongoing impact on the application using those services. For instance, Adobe can detect when a webhook subscribed to Events in your Project becomes unreachable or when a certificate key pair used in your application will expire soon. In such cases when a Project requires your attention, email alerts are used to notify you and your organization. 4 | 5 | ## Managing email alert recipients in an enterprise organization 6 | 7 | Email alerts are always sent to system administrators in an organization. However, developers and other users can also be added as email alert recipients to notify them directly. 8 | 9 | **Note:** Adding more users as email alert recipients is unavailable to personal developer organizations. 10 | 11 | 12 | 13 | The email alert recipient list applies to **all Projects** in your organization. 14 | 15 | ### Adding an email alert recipient 16 | 17 | A developer or a system administrator can add up to 20 additional users in your organization as email alert recipients. 18 | 19 | **Note:** You can only add user accounts who have been added to your organization and not any email address. Follow this [guide](https://helpx.adobe.com/in/enterprise/using/manage-users-individually.html) to add a user to your organization. 20 | 21 | 22 | To add more users as email alert recipients: 23 | 24 | 1. Log in to the [Adobe Developer Console](https://developer.adobe.com/console). 25 | 2. Ensure you have selected the correct organization in the org switcher on the top right. 26 | 3. On the Home screen, click on the `Manage email alerts` button. 27 | 4. Search for the user you wish to add by their name or email address and click on `Add` once they appear in the dropdown. 28 | 5. Repeat for as many users as you want to add, and then click `Save`. 29 | 30 | ![](../../images/add-email-alert-recipient.png) 31 | 32 | ### Removing an email alert recipient 33 | 34 | Any user who was added as an email alert recipient can also be removed if they don't wish to receive the alerts. 35 | 36 | **Note:** System administrators cannot be removed as email alert recipients. 37 | 38 | To remove any user from the email alert recipients list: 39 | 40 | 1. Log in to the [Adobe Developer Console](https://developer.adobe.com/console). 41 | 2. Ensure you have selected the correct organization in the org switcher on the top right. 42 | 3. On the Home screen, click on the `Manage email alerts` button. 43 | 4. In the list of recipients shown, find the user you wish to remove and click the `Remove` button against their name. 44 | 5. Repeat for as many users as you want to remove, and then click `Save`. 45 | 46 | ![](../../images/remove-email-alert-recipient.png) 47 | 48 | ## Managing noisy email alerts 49 | 50 | Email alerts are sent out whenever a Project requires your attention. Often, these alerts are often critical notifications, and not acting upon them could cause an impact on your custom applications using Adobe services. 51 | 52 | However, not all Projects on the Developer Console are used in your Production environment. You may be using some of the Projects for Stage or Dev environments or just for demoing and experimentation purposes. In such cases, the email alerts may be less critical and can contribute to noise. 53 | 54 | Therefore, for non-critical Projects, you can pause the email alerts to reduce the number of emails you receive. 55 | 56 | **Note:** Email alerts are enabled by default for all new Projects. 57 | 58 | 59 | ### Pausing email alerts for a Project 60 | 61 | Pausing email alerts for non-critical Projects is recommended. To Pause alerts 62 | 63 | 1. Log in to the [Adobe Developer Console](https://developer.adobe.com/console) and go to the Projects screen. 64 | 2. Find and open the Project for which you wish to pause the email alerts. 65 | 3. On the Project overview screen, click on the `Pause email alerts` button. 66 | 4. Confirm that you want to pause email alerts. 67 | 68 | ![](../../images/pause-email-alerts.png) 69 | 70 | ### Activating email alerts for a Project 71 | 72 | To activate email alerts - 73 | 74 | 1. Log in to the [Adobe Developer Console](https://developer.adobe.com/console) and go to the Projects screen. 75 | 2. Find and open the Project for which you wish to activate the email alerts. 76 | 3. On the Project overview screen, click on the `Activate email alerts` button. 77 | 4. Confirm that you want to activate email alerts. 78 | 79 | ![](../../images/activate-email-alerts.png) -------------------------------------------------------------------------------- /src/pages/guides/getting-started.md: -------------------------------------------------------------------------------- 1 | # Accessing the Adobe Developer Console 2 | 3 | To start building your application that integrates with Adobe products and services you would first need to log in to the Developer Console and then [create a project](./projects/index.md). 4 | 5 | ## Logging in to the Developer Console 6 | 7 | To login to the [Adobe Developer Console](https://developer.adobe.com/console) you need an Adobe Account. When you visit the Developer Console, you'd be redirected to the login page where you could sign up for a new account or sign in using an existing account. 8 | 9 | ### Logging in with a company or school account 10 | 11 | When you use your company or school acccount to login, you can see all the projects your organization has on the Developer Console. However, before you can see any projects or can begin creating a new project, an administrator on your organization would need to grant you developer role permissions. If you login without the developer or system administrator permissions, you will only be able to view the list of APIs and services Adobe has. 12 | 13 | ![](../images/user-view-request-access.png) 14 | 15 | Depending on what your organization has purchased from Adobe, you can request your Admin developer access to an API by clicking the request access button. But to gain access to other services, you will need to contact your organization administrator yourself. 16 | 17 | To contact an administrator on your organization, view our documentation [here](https://helpx.adobe.com/enterprise/kb/contact-administrator.html). If you're an administrator, check out our documentation on [managing developers](https://helpx.adobe.com/enterprise/using/manage-developers.html). 18 | 19 | 20 | ### Logging in with a personal account 21 | 22 | You can also use your personal account to login and access the Developer Console. When you login using your personal account, you are automatically provided a personal developer organization. You can create and manage projects under this organization. 23 | 24 | ### Switching between your organizations 25 | 26 | If you are a developer or a system administrator on multiple organizations, you can access those organizations using the organization switcher ('org switcher'). 27 | 28 | The org switcher is located on the top right corner of the UI. Next to the org switcher, you can always check which organization you are using currently and what role you have in that organization. To change the organization you are using, simply click on the org switcher dropdown and select the desired org from the list. 29 | 30 | 31 | 32 | The projects in an organization belong to that organization. When you are working with multiple organization, be sure to check which organization you have selected in the org switcher. 33 | 34 | ![](../images/switch-organizations.png) 35 | 36 | 37 | ## Introduction to the Developer Console UI 38 | 39 | In order to create and manage projects easily, this section introduces key areas of the Adobe Developer Console user interface (UI). 40 | 41 | ### Home 42 | 43 | After successfully logging in to [Adobe Developer Console](https://developer.adobe.com/console), you will arrive at the _Home_ screen. 44 | 45 | The _Home_ screen is where you can easily find information and quick links, including top-navigation links to Projects and Downloads. 46 | 47 | ![](../images/developer-console-home.png) 48 | 49 | #### Quick start 50 | 51 | The _Home_ screen also provides "quick start" links to help you get started with some of the most common Console actions. _Quick start_ links are available for: creating an empty project, creating a project using a template, and downloading resources. 52 | 53 | ![](../images/quick-start.png) 54 | 55 | #### Recent projects 56 | 57 | If your organization has created projects, the most recent projects are displayed on the _Home_ screen, enabling you to easily continue working or see work that has been done. 58 | 59 | Only the three most recent projects will be shown, therefore to view additional projects for your organization, select **All projects** or choose _Projects_ in the top navigation. See the [Projects](#projects) section that follows for more information. 60 | 61 | ![](../images/recent-projects.png) 62 | 63 | #### Resources 64 | 65 | The _Resources_ section provides helpful links to related documentation, guides, and services to support you in your work. 66 | 67 | The resources that appear are influenced by where you are in your workflow, updating to ensure you are provided with the most relevant information at the most appropriate time. 68 | 69 | ![](../images/resources.png) 70 | 71 | ### Projects 72 | 73 | The _Projects_ screen provides an overview of the projects that have been created by your organization. If you are part of an enterprise organization, this includes all projects that you have access to, not just projects that you have created. 74 | 75 | Each individual project is shown on a card that includes the title of the project, the last modified date, the products included in the project and whether the project includes APIs, events, runtime, or a combination. 76 | 77 | You can use the sort functionality to change the order in which projects are displayed, and you can begin working on a new project by selecting **Create new project**. 78 | 79 | For more information on projects, being by reading the [projects overview](projects/index.md). 80 | 81 | ![](../images/projects.png) 82 | 83 | ### APIs and services 84 | 85 | The _APIs and services_ screen provides access to all available APIs, Events and services for Adobe products and technologies, with which you can develop applications. It can be accessed by selecting selecting **APIs and services** in the top navigation. 86 | 87 | To learn more about available APIs and services, read the [APIs and services overview](apis-and-services.md). 88 | 89 | ![APIs and services](../images/apis-and-services.png) 90 | -------------------------------------------------------------------------------- /src/pages/guides/index.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Adobe Developer Console 4 | 5 | The ultimate developer destination to access Adobe APIs & SDKs, listen to near real-time Events, run functions on Runtime, or build plugins or App Builder apps. 6 | 7 | ## Overview 8 | 9 | 10 | 11 | [Accessing the Developer Console](getting-started.md) 12 | 13 | This guide will give you a quick overview of the Developer Console and how to gain access. 14 | 15 | 16 | 17 | 18 | [Authentication Guide](/authentication/index.md) 19 | 20 | Our authentication guide contains all the information you need to generate access tokens and securely use Adobe services in your application. 21 | 22 | 23 | 24 | 25 | [APIs, Events, and services](/apis-and-services.md) 26 | 27 | Browse all available Adobe APIs, Adobe I/O Events, and other Adobe services that you can integrate into your application. 28 | 29 | 30 | 31 | 32 | [Creating Projects](/projects/index.md) 33 | 34 | A project on the Developer Console corresponds to an application you are building. To leverage the power of Adobe products and technologies in your application, simply add those services (APIs, Events, and Runtime) to your project. 35 | 36 | 37 | 38 | 39 | [Plugins](/plugins/index.md) 40 | 41 | Plugins enhance the functionality of Adobe products. End users of the plugins can install them through the marketplace and use them through the product UI. As a developer, you can add a plugin to your project and start building it. 42 | 43 | 44 | 45 | 46 | [App Builder Project Template](/projects/projects-template.md) 47 | 48 | Quickly start building an App Builder application by using the App Builder project template. App Builder provides all required developer tooling to build a Single Page App with Adobe's UI toolkit or microservices that orchestrate Adobe and non-Adobe APIs and services. [Learn more](https://developer.adobe.com/app-builder/). 49 | 50 | 51 | ## What's new on Adobe Developer Console 52 | 53 | ### Migrate to the new OAuth Server-to-Server credential 54 | 55 | As of June 30, 2025, Service Account (JWT) credentials have reached their end of life and are no longer supported. All server-to-server integrations must use the [OAuth Server-to-Server credentials](../authentication/ServerToServerAuthentication/implementation.md). View the [migration guide](../authentication/ServerToServerAuthentication/migration.md) to know more. 56 | 57 | 58 | ### Email alerts 59 | 60 | Adobe will send you [email alerts](email-alerts/index.md) whenever there is a potential or ongoing impact on your application. You can [add developers](email-alerts/index.md#managing-email-alert-recipients-in-an-enterprise-organization) in your organization as email alert recipients. You can also [pause email alerts](email-alerts/index.md#managing-noisy-email-alerts) for any projects that are not critical. 61 | 62 | ### Project Filters 63 | 64 | Use Project Filters to narrow your search when looking for a specific project. You can filter by who created or last modified the project, any title or description used in the project, or any programmatic identifiers such as client id, technical accounts, namespaces, etc. You can also quickly view the projects that contain certificates expiring within the next 30 days. 65 | 66 | ### Project Activity Logs 67 | 68 | View who created or last modified a project by visiting the Project overview page. You can also view the exact set of changes made to the project in the last year (who, what, and when) by visiting the [Activity Logs](projects/index.md#view-a-projects-activity-log) tab within the Project. -------------------------------------------------------------------------------- /src/pages/guides/insights.md: -------------------------------------------------------------------------------- 1 | # Insights 2 | 3 | Adobe Developer Console automatically generates valuable insights related to API and runtime usage for each enterprise project (or for each workspace when working in a templated project). 4 | 5 | API insights are also generated for personal projects, however because Runtime cannot be added to personal projects, there are no runtime usage insights available. 6 | 7 | ## Access insights 8 | 9 | From within the *Project overview* (or individual *Workspace overview*), select **Insights** in the left navigation. 10 | 11 | This opens the *Overview* tab showing graphs displaying *API calls over time* and *Total runtime activations over time*. 12 | 13 | 14 | 15 | If Runtime has not been enabled for the project or workspace, runtime data will not appear. 16 | 17 | Also on the *Overview* tab, the **View by** dropdown allows you to select a preferred timeframe by which to view this information. The date and time of the last refresh of the data is provided in the top-right corner of Console, and you can trigger a data refresh by selecting the **Refresh** button. 18 | 19 | 20 | 21 | There is a 10 minute delay on all data shown. 22 | 23 | By default, the information shown on the *Overview* tab is for all APIs that have been added to the project or workspace. You can use the **All Services** dropdown to select a specific API that you would like to focus on. Alternatively, to see more insights related to APIs, you can select **APIs** from the insights navigation. 24 | 25 | ![](../images/insights-overview.png) 26 | 27 | ## API insights 28 | 29 | Selecting **APIs** from the insights navigation opens the *APIs* tab, showing *API calls over time*, as well as *Total API calls by service*, and a graph that breaks down the *Response codes* from those calls. 30 | 31 | By default, this information is shown for all APIs that have been added to the project or workspace. Similar to the insights overview, you can use the **All Services** dropdown to select a specific API that you would like to focus on. 32 | 33 | ![](../images/insights-api-overview.png) 34 | 35 | When a specific API is selected, the *API calls over time* graph adjusts to show only those calls related to the selected API. The *Total API calls by service* circle graph is redrawn to illustrate *Total API calls by endpoint* from within the selected API. 36 | 37 | The *Response codes* graph is also redrawn to show only the response codes from the specified API. 38 | 39 | ![](../images/insights-api-detail.png) 40 | 41 | ## Runtime insights 42 | 43 | Selecting **Runtime** from the insights navigation allows you to view specific insights for the runtime namespace associated with the project or workspace. For reference, the runtime namespace is provided immediately below the insights navigation. 44 | 45 | The *Runtime* tab also provides default insights such as counts showing *Total Usage*, *Total Activations*, and *Total Error Activations*. The tab also displays graphs showing *Activations over time*, *Error activations over time*, and *Duration over time* broken down by actions. 46 | 47 | You can use the **View by** dropdown to select the timeframe you wish to review. You can also see the last refresh of the data in the top-right corner of Console and trigger a data refresh by selecting the **Refresh** button. 48 | 49 | 50 | 51 | There is a 10 minute delay on all data shown. 52 | 53 | By default, the *Runtime* tab shows all actions, but you can use the **Show** dropdown to select a specific action to view in more detail. 54 | 55 | ![](../images/insights-runtime-overview.png) 56 | 57 | Once a specific action has been selected using the **Show** dropdown, the *Runtime* tab adjusts to display information specific to that action. Note that the runtime namespace updates to include "runtime namespace/action" and that the counts now show totals for *Cache Hit Ratio*, *Activations*, and *Activation Errors*. 58 | 59 | The breakdown of action-specific information also includes *Total activations by region*, as well as graphs showing *Activations over time by region*, *Activation errors over time*, and *Activation Duration*, each broken down by regions. 60 | 61 | ![](../images/insights-runtime-action.png) -------------------------------------------------------------------------------- /src/pages/guides/plugins/index.md: -------------------------------------------------------------------------------- 1 | # Plugins overview 2 | 3 | Adobe Developer Console enables you to create plugins for Adobe XD, Adobe's interactive prototyping tool, and Photoshop, the industry standard in digital imaging. 4 | 5 | Plugins extend the capabilities of Adobe products by adding new features to the app, automating workflows, connecting the app to external services, and more. 6 | 7 | This guide provides instructions to help you begin building plugins within Adobe Developer Console. 8 | 9 | ## Create a plugin project 10 | 11 | To create a plugin, begin by selecting the quick start button to **Create an empty project** on the Console home screen. 12 | 13 | ![](../../images/personal-org.png) 14 | 15 | When the project overview opens, it will briefly display a success banner ("Project created successfully"). 16 | 17 | ![](../../images/personal-project-created.png) 18 | 19 | ## Begin building your plugin 20 | 21 | Select **Add Plugin** to add a new plugin to your project. 22 | 23 | ![](../../images/personal-project-add-plugin.png) 24 | 25 | On the **Add a plugin** screen, you can select the type of plugin that you would like to add to your project: Adobe XD or Photoshop. After choosing the type of plugin you would like to add, select **Save** to save your changes and return to the plugin overview. 26 | 27 | **Note:** You can add multiple plugins to a single project by following this workflow more than once. 28 | 29 | ![](../../images/plugin-add-a-plugin.png) 30 | 31 | After the plugin type has been selected, you are taken to the landing page for your plugin. This landing page includes the **Status**, **Plugin ID**, **Last modified** date, and **Created** date for your plugin, as well as navigation options to return to the **Project Overview** or **Distribute** your completed plugin. 32 | 33 | ![](../../images/plugin-created.png) 34 | 35 | ### Download starter project 36 | 37 | To begin development for your plugin, locate the **Download the starter project** section and select **Download**. 38 | 39 | The starter project includes the basic folder structure for a plugin as well as a manifest file that is pre-configured with the correct plugin ID and project name. 40 | 41 | ![](../../images/plugin-download-starter.png) 42 | 43 | ### Create FastSpring account (optional) 44 | 45 | If you plan to sell your Photoshop plugin, you will need to set up a FastSpring account and enter the key into your public profile. For more information, please read the [public profile overview](../public-profile.md). 46 | 47 | ![](../../images/plugin-photoshop-fastspring.png) 48 | 49 | ## Distribute plugin 50 | 51 | When you have finished building your plugin, it is time to submit the plugin for review and distribution. For detailed instructions on how to submit your plugin for distribution, please see the [plugin distribution](plugin-distribution.md) guide. 52 | 53 | ![](../../images/plugin-distribute-docs.png) 54 | 55 | ## Project overview 56 | 57 | At any time you can return to the overview for the project by selecting **Project overview** in the left navigation. The overview includes information about the plugin project, including **Products & services** which lists the plugin that you created (in this example, an Adobe XD plugin). While you continue to work on your plugin it will appear as "In Development". 58 | 59 | ![](../../images/plugin-project-overview.png) -------------------------------------------------------------------------------- /src/pages/guides/plugins/plugin-update.md: -------------------------------------------------------------------------------- 1 | # Update a plugin 2 | 3 | Adobe Developer Console supports versioning of plugins, allowing you to continue development on your existing plugin and release an updated version for users. 4 | 5 | ## Add new version 6 | 7 | To submit a new version of your plugin for review, navigate to the plugin project that you would like to update and select **Distribute**. 8 | 9 | On the distribution tab, are details pertaining to your current plugin, including **Version Number**, **Status**, and **Published** date. 10 | 11 | To add a new version, select **Add new version** in the top-right corner of the screen. 12 | 13 | ![](../../images/plugin-add-new-version.png) 14 | 15 | ## Update listing information 16 | 17 | At this time you can update the **Listing Information**, including the categories your plugin should be listed in, languages your plugin supports, and version details for your new plugin version. 18 | 19 | ![](../../images/plugin-listing-information.png) 20 | 21 | ## Plugin file 22 | 23 | After ensuring that your listing has been updated properly, you can drag and drop your new plugin file or use **Select a File** to navigate to the appropriate file on your computer and select it for upload. 24 | 25 | ![](../../images/plugin-distribute-file.png) 26 | 27 | Once the plugin file has been successfully uploaded, the name of the file will appear in the **Plugin File** field and the manifest will populate the new **Plugin version** (Required), **Min. version** (Required), and **Max. version** (Optional). 28 | 29 | You can now select **Preview & Submit** to continue. 30 | 31 | ![](../../images/plugin-distribute-complete.png) 32 | 33 | ### Preview and submit 34 | 35 | The final step in the distribution process is to preview your plugin and submit it for approval. Before submitting, you can preview your listing by selecting **Preview in Adobe XD** (or **Preview in Photoshop**). 36 | 37 | You can add a new **Note to Adobe Reviewers** and you again have the option to **Delay Publishing** to a later time. 38 | 39 | After reviewing your plugin listing, adding notes to Adobe reviewers, and selecting your publishing time, you can **Submit** the new version of your plugin for review. 40 | 41 | ![](../../images/plugin-preview-submit.png) 42 | 43 | ## Plugin review 44 | 45 | Upon successful submission on your Plugin, you will return to the **Distribute** page where the **Version Number** will have updated to the new version of your plugin, and the **Status** will once again be "In review". 46 | 47 | ![](../../images/plugin-new-version-in-review.png) 48 | 49 | ## Next steps 50 | 51 | Plugin submissions are reviewed by Adobe and a response is provided within 10 business days. Once your plugin has been approved, it will be published and available for installation by users (unless you selected to publish your plugin manually at a later date). 52 | 53 | Now that you have successfully updated and resubmitted a plugin, you can repeat the creation and distribution steps to create additional plugins or create other applications using Adobe Developer Console. To learn more about creating projects within Console, please begin by reading the [projects overview](../projects/index.md). -------------------------------------------------------------------------------- /src/pages/guides/projects/approval.md: -------------------------------------------------------------------------------- 1 | # Project approvals 2 | 3 | Once you have completed development on your project, your application is ready for approval. 4 | 5 | There are three different approval processes within Adobe Developer Console, depending on the type of application that you have built: 6 | 7 | 1. **App Builder applications:** Projects built using the App Builder template are built by an organization for use within that organization. Therefore, App Builder applications require approvals by the enterprise organization administrator only. Please follow the approval process for [App Builder applications](#app-builder-applications-approval-process) outlined in this document. 8 | 9 | 2. **Applications for publication:** Building an application for distribution to general users on the Adobe Exchange requires approval from the Adobe Review team before it can be published. Please refer to the [applications for publication](#applications-for-publication) approval process outlined in this document. 10 | 11 | 3. **Plugin distribution:** Plugins must be submitted for review and approval before they can be published to the plugin marketplace. For detailed instructions on how to submit a plugin for approval, follow the steps provided in the [plugin distribution guide](../plugins/plugin-distribution.md). 12 | 13 | ## App Builder applications approval process 14 | 15 | Once you have completed development on an App Builder application, it is time to submit the application to your administrators for review and approval. The final app is based on the **Production** workspace, therefore it is important to ensure that the production workspace contains all of the necessary APIs, Events, and Runtime code that it needs before submitting for approval. 16 | 17 | To begin the approval process, navigate to the **Production** workspace and select **Submit for approval** in the top-right corner of the screen or select **Approval** in the left navigation. 18 | 19 | ![](../../images/approval-production-overview.png) 20 | 21 | On the *Approval* screen you will be presented with the **App Submission Details** form. These details will be visible to people using your app and administrators reviewing your application. 22 | 23 | Once the submission details have been completed, select **Submit** to begin the approval process. 24 | 25 | ![](../../images/approval-app-submission-details.png) 26 | 27 | You will be returned to the *Approval* screen, where the *Status* of your application should now be "In Review". 28 | 29 | ![](../../images/approval-in-review.png) 30 | 31 | Following a review by your organization administrators, your application will either be approved and published or rejected. If the application is rejected, your admin will be able to include a note telling you what went wrong, allowing you to fix the error and submit for approval again. 32 | 33 | ![](../../images/approval-app-rejected.png) 34 | 35 | If your application is approved, you are ready to move on to the [next steps](#next-steps) found at the end of this document. 36 | 37 | ## Applications for publication 38 | 39 | In order for an application to be available to public users, it must first be approved by the Adobe Review team. To begin, navigate to the **Project overview** for the project containing the application that you want to publish. 40 | 41 | ![](../../images/approval-empty-project.png) 42 | 43 | Select **Approval** from the left navigation to view the submission details. These details include information about the application that will be shown to end users and the Adobe Review team. 44 | 45 | **Note:** You will need to complete a public profile before you can submit your app or integration for approval. If you have not already completed a public profile, you will be prompted to do so before completing the approval process. The information from this profile will appear on the consent screen that users will view when using your app. To learn more about creating a public profile, please visit the [public profile overview](../public-profile.md). 46 | 47 | Once the submission details have been completed, select **Submit for approval** to continue the approval process. 48 | 49 | ![](../../images/approval-submit-for-approval.png) 50 | 51 | After submitting, your application status will be updated to **In Review** and the details that you filled in previously will be visible, however they will be greyed out and you will not be able to edit them. 52 | 53 | ![](../../images/approval-public-profile-in-review.png) 54 | 55 | ## Next steps 56 | 57 | Once an application has been approved, either by internal reviewers or the Adobe Review team, its status will be updated to **Published** and the application will be available for use either by employees within your enterprise organization (for App Builder applications) or for the general public through Adobe Exchange. 58 | 59 | ![](../../images/approval-public-profile-published.png) -------------------------------------------------------------------------------- /src/pages/guides/projects/beta-users.md: -------------------------------------------------------------------------------- 1 | # Beta users overview 2 | 3 | Adobe Developer Console enables you to select and manage a group of beta users, giving them access to your integration while it is still in development. 4 | 5 | **Note:** Adobe will not contact beta users on your behalf. All communication, including set-up instructions and providing access to your project for testing, must be done by you or members of your organization. 6 | 7 | ## Getting started 8 | 9 | To begin working with beta users, visit the **Project overview** of the project you want to engage beta users on and select **Beta users** from the left navigation. 10 | 11 | **Note:** The ability to select beta users is available only for certain APIs. If your project does not include one of these APIs, the beta users feature will not be visible. 12 | 13 | ![](../../images/beta-users-project-overview.png) 14 | 15 | ## Add beta users 16 | 17 | The **Beta users** screen displays the status of your project as well as a text field where you can enter email addresses for your beta users. 18 | 19 | If your project status is **In Development** or **In Review** (or if your project has been **Rejected** and requires further development work), you can add up to 25 beta users and provide them with access to test your application. Beta users are identified by their email addresses and can either be [added manually](#add-users-manually) using the text box or [uploaded via CSV](#upload-csv) file. Both methods are described in the following sections. 20 | 21 | ### Add users manually 22 | 23 | To add a user to the list manually, input their email addresses into the text box, separating multiple email addresses with commas (`,`). Once you have entered all of the email addresses, select **Save list** to save your changes. 24 | 25 | ![](../../images/beta-users-add.png) 26 | 27 | After you save the list, the count (`0/25`) will update to show the current number of beta users. 28 | 29 | ![](../../images/beta-users-list-saved.png) 30 | 31 | ### Upload CSV 32 | 33 | To add beta users using a CSV file, select **Upload .CSV** and choose the file you wish to upload. 34 | 35 | ![](../../images/beta-users-upload.png) 36 | 37 | After locating the file you wish to use, select **Open** to open the file and you should see the email addresses, separated by commas (`,`) in the text field. 38 | 39 | **Note:** The CSV file should contain only the email addresses of the beta users to be added. Any additional information in the CSV will result in errors when trying to save your beta user list. 40 | 41 | If the list of email addresses looks correct, select **Save list** to save your changes. 42 | 43 | After you save the list, the count (`0/25`) will update to show the current number of beta users. 44 | 45 | ![](../../images/beta-users-list-saved.png) 46 | 47 | ## Remove beta users 48 | 49 | To remove a beta user, simply remove their email address from the list and save your changes. You can also remove all beta users at once by selecting **Clear list**. 50 | 51 | ![](../../images/beta-users-clear-list.png) 52 | 53 | Before the list is cleared you will be asked to confirm your selection. Selecting **Clear list** from the dialog will remove all beta user email addresses and return the count to `0/25`. 54 | 55 | ![](../../images/beta-users-clear-confirm.png) 56 | 57 | ## Engaging your beta users 58 | 59 | The list of email addresses provided is for beta user identification purposes only. Adobe does not contact beta users directly regarding beta software. 60 | 61 | In order to engage your beta users, please contact the members of the list directly to provide instructions for accessing your application. 62 | 63 | **Note:** Once your project is completed and has been approved, the beta user group and their email addresses will be removed from Console automatically. 64 | 65 | -------------------------------------------------------------------------------- /src/pages/guides/projects/projects-empty.md: -------------------------------------------------------------------------------- 1 | # Create an empty project 2 | 3 | This guide provides step-by-step instructions for creating an empty project in Adobe Developer Console. 4 | 5 | **Note:** To create a project using a template, please follow the steps in the guide for [creating a project using a template](projects-template.md). 6 | 7 | ## Select organization 8 | 9 | Before creating a project, ensure that you are working in the correct organization. To view and select an organization, use the org switcher located in the top-right corner of Console. 10 | 11 | ![Organization switcher in Console](../../images/switch-organizations.png) 12 | 13 | ## Quick start 14 | 15 | Next, select **Create new project** from the **Quick start** menu on the **Home** screen. 16 | 17 | **Note:** When accessing Console using a developer organization, only two Quick start options appear: "Create new project" and "Developer downloads". 18 | 19 | ![](../../images/create-new-project-quick-start.png) 20 | 21 | ## Project overview 22 | 23 | After selecting to create a new project, the **Project overview** opens, showing the details of your project and an alert confirming that a new project has been created successfully. 24 | 25 | A project name is automatically generated for your project ("Project 12" in the top-left corner of the screen) and is an internal name that can be edited using the **Edit project** button. 26 | 27 | **Note:** When creating multiple projects within an organization or working collaboratively with other developers, it is best practice to choose a project name that is descriptive and makes it easy to distinguish your project from others. 28 | 29 | The project overview screen also includes the last modified date of the project, the project created date, and the project description. 30 | 31 | ![](../../images/new-project-created.png) 32 | 33 | ## Download project 34 | 35 | From the project overview, you can download a JSON file containing project information by selecting **Download** in the top-right corner of the overview. Selecting this button automatically begins a download of a JSON file that you can then open and edit in your preferred editor. 36 | 37 | ## Delete project 38 | 39 | You can delete a project from the project overview screen by selecting **Delete project** in the top-right corner. In order to confirm that you wish to delete the project, you must type the project name exactly as shown in the top-left corner of the overview (in this example, *"Project 12"* without quotation marks). Once the project name has been entered, select **Delete project** to delete the project. 40 | 41 | Once the project has been deleted, you are returned to the project list and an alert appears confirming that the project has been successfully deleted. 42 | 43 | **Note:** Once Runtime has been enabled for a project, the project can no longer be deleted and the **Delete project** button will not appear in the project overview. You can select to start over with a new project or edit your existing project, but you cannot remove Runtime nor can you delete a project containing a Runtime namespace. 44 | 45 | ![](../../images/project-delete.png) 46 | 47 | ## Next Steps 48 | 49 | With a new project created, you can start using Adobe services, adding APIs, events, or plugins, and enabling Runtime using the **Add to Project** button on the left-side of the overview or the quick action buttons provided in the center of the screen. 50 | 51 | To learn more about working with services including steps for adding APIs, events, and runtime, please begin by reading the [services overview](../services/index.md). 52 | 53 | If you are interested in building a Plugin, please visit the [plugins overview](../plugins/index.md) for a complete guide to creating, updating, and distributing plugins. 54 | 55 | ![](../../images/empty-project-add-to-project.png) 56 | -------------------------------------------------------------------------------- /src/pages/guides/public-profile.md: -------------------------------------------------------------------------------- 1 | # Public profile overview 2 | 3 | Adobe Developer Console requires all organizations to create a public profile that is included as part of any app approval or plugin listing submission. The information provided in the profile is shown to users viewing distributed plugins or a consent screen when installing your apps. 4 | 5 | ## Create a public profile 6 | 7 | To begin creating a public profile for yourself or your organization, select **Edit public profile** on the home screen. 8 | 9 | ![](../images/public-profile-button.png) 10 | 11 | ### Profile details 12 | 13 | The **Developer account management** screen opens to the **Public profile** tab, where you are asked to fill in information about your organization. 14 | 15 | All fields are required in order to submit a project for approval or to be listed in a marketplace. This information will be shown to users viewing distributed plugins or on a consent screen for your app. The information you list here will apply to ALL of your organization’s projects. [Learn more about public profiles](https://adobexdplatform.com/plugin-docs/distribution/how-to-submit-to-plugin-manager.html). 16 | 17 | **Note:** Enter your information carefully. You will need to contact Adobe directly to make any changes or updates after you have submitted your public profile as part of an app approval or plugin listing submission. 18 | 19 | ![](../images/public-profile-create.png) 20 | 21 | * **Public name:** Enter your name or your company's name. This value must be unique. 22 | * **Marketing website:** Enter the URL for your personal or company website, beginning with `https://`. This should be a website for you or the company as a whole, as it will be used for all project submissions. 23 | * **Description:** Provide a description of the work that you, or your company, does. Again, this information will be used for all project submissions and should be generic to the company as a whole. 24 | * **Logo:** Upload an image representing you or your organization. Images must be 250 px by 250 px, no larger than 2 MB, and in PNG or JPG file format. View the [brand guidelines](https://partners.adobe.com/content/dam/tep_assets/public/public_1/documents/Adobe-Creative-Cloud-Developer-Brand-Guide.pdf) for more information. 25 | 26 | ![](../images/public-profile-complete.png) 27 | 28 | After all of the required fields are completed, you will be able to select **Save** to save your profile. You are not required to complete the steps on the **[Commerce](#commerce)** tab unless you plan to submit a paid plugin listing. 29 | 30 | ### Commerce 31 | 32 | For paid plugin listings, you will be required to register with Adobe’s third-party payment provider, [FastSpring](https://fastspring.com/), and enter your FastSpring key on the **Commerce** tab. 33 | 34 | **Note:** After signing up, it may take up to 24 hours for FastSpring to create your key. 35 | 36 | If you do not plan to submit paid plugin listings, you are not required to complete the commerce section of your public profile. Should you choose to create a paid plugin listing in the future, you can edit the commerce section at a later date. 37 | 38 | ![](../images/public-profile-commerce.png) 39 | 40 | ## Edit your public profile 41 | 42 | After your public profile has been created, you can update the profile information by selecting **Edit public profile** on the home screen. Editing can only be done if you have not submitted your public profile as part of an app approval or plugin listing submission. 43 | 44 | ![](../images/public-profile-button.png) 45 | 46 | When the **Developer account management** screen opens to the **Public profile** tab, you can update the information that you have provided for your organization, including: Profile name, Marketing website, Description, and Logo. Remember when updating your profile name, that it is required to be a unique value and will display an error if you attempt to change your profile name to something that is not unique. 47 | 48 | ![](../images/public-profile-edit.png) 49 | 50 | If you have submitted your public profile as part of an app approval or plugin listing submission, you will need to contact Adobe directly to make any changes or updates. You will no longer see **Edit public profile** and will see **View public profile** instead. 51 | 52 | ![](../images/public-profile-view-only.png) 53 | 54 | After selecting to view your public profile, the fields on the **Public profile** tab appear greyed out and the **Save** button has been replaced with **Contact us to update**. 55 | 56 | **Note:** You will still be able to add or update your FastSpring account information on the **Commerce** tab. 57 | 58 | ![](../images/public-profile-contact-to-update.png) -------------------------------------------------------------------------------- /src/pages/guides/quota.md: -------------------------------------------------------------------------------- 1 | # Quota usage overview 2 | 3 | When adding select APIs to your Adobe Developer Console project, it may specify a quota, or fixed allowance, for usage. 4 | 5 | ## What is quota? 6 | 7 | Quota specifies a fixed amount of usage, such as a total number of operations or specific actions, that your organization can take using a select API during a specific time period. 8 | 9 | For example, the [Document Cloud Services SDK (DC SDK) provides a trial program](https://www.adobe.io/apis/documentcloud/dcsdk/docs.html?view=services) allowing you to test the functionality of the SDK through the use of free credentials. The quota provided is generous enough to get you up and running to use the DC SDK within your project. 10 | 11 | 12 | 13 | Currently it is not possible to request additional quota or upgrade existing quota. 14 | 15 | ## View quota usage 16 | 17 | Quota usage can be viewed within Console by selecting the appropriate project and then selecting the API in the left navigation of the *Project overview*. 18 | 19 | If the API has a specified quota, *Quota usage* will be visible at the top of the API overview screen, showing the percentage of quota used and the total number of units used. The type of units and total number of units shown relate to the specific API and its functionality. 20 | 21 | For example, the DC SDK (Shown as *Services SDK* in the image below) provides 5,000 pages-worth of PDF actions for a six month time period, therefore the **Total quota** is 5,000 and the **Quota used** refers to the number of PDF actions multiplied by the number of pages. The percent value refers to the percentage of the 5,000 total quota that has been used. 22 | 23 | ![](../images/quota-usage.png) 24 | 25 | ## Next steps 26 | 27 | To learn more about individual APIs, including details related to trial programs and quotas, please be sure to read the API-specific documentation provided within Console. To easily access API documentation, select **View documentation** in the *Getting started* section of the API overview or select **View docs** while adding an API to your project. 28 | 29 | For a complete guide to adding services, such as APIs, Events, and Runtime to your projects, begin by reading the [services overview](services/index.md). 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/pages/guides/services/index.md: -------------------------------------------------------------------------------- 1 | # Services overview 2 | 3 | After creating a project, it is time to begin adding services. These services include Adobe APIs, I/O Events, Plugins, App Builder, and I/O Runtime. 4 | 5 | ## Add a service 6 | 7 | Adding services to an empty project is the same whether you are working in a personal or enterprise project. Adding services to a templated project is similar, with one small variation: services are added to individual workspaces, not to the project as a whole. 8 | 9 | To begin adding a service from within a templated project, first select the appropriate workspace to open the **Workspace overview**. Then, select **+ Add Service** in the left navigation and choose the service you wish to add from the dropdown. 10 | 11 | In an empty project, select **+ Add to Project** in the left navigation of the **Project overview** or select from the quick start buttons. 12 | 13 | ![](../../images/services-add-to-project.png) 14 | 15 | ## Service-specific workflows 16 | 17 | To follow a specific workflow for adding each type of service, please select from the following guides: 18 | 19 | ### Add API 20 | 21 | Using APIs allows your application to makes call to Adobe services by means of a REST API. 22 | 23 | Access to some APIs is based on licenses. Meaning either the licenses your company holds or your personal licenses if you are building a personal project. Due to this you may not have access to every API that you wish to use. 24 | 25 | APIs can be connected to your app in multiple ways, depending on the API or the type of app that you are building. Occasionally APIs will provide multiple connection options, allowing you to choose the type of connection that works best for your application. To learn more about each of these authentication methods or API connections, read the [authentication documentation](../authentication/index.md). 26 | 27 | * [Add an API using OAuth Server-to-Server credential](services-add-api-oauth-s2s.md) 28 | * [Add an API using OAuth User authentication credential](services-add-api-oauth-user-authentication.md) 29 | * [Add an API using API Key authentication](services-add-api-key.md) 30 | 31 | 32 | 33 | See our [authentication guide](../authentication/index.md) to learn about the available credential types. 34 | 35 | ### Add Event 36 | 37 | Adobe I/O Events allow you to receive notifications of real-time events taking place in Adobe services. To add this service to your project you must register a webhook, to which Adobe I/O Events sends HTTP POST requests containing the details of each event. Using Events, you can build event-driven applications that integrate with Adobe. To learn more about Adobe I/O Events, read the [Events documentation](https://www.adobe.com/go/devs_events). 38 | 39 | * [Add Event registration to your project or workspace](services-add-event.md) 40 | 41 | ### Enable Runtime 42 | 43 | Adobe I/O Runtime is Adobe’s serverless computing platform. Runtime enables you to execute functions from the cloud without deploying or configuring a server. This ability provides a flexible, on-demand computing resource that lets you easily access Adobe content, data, and services, orchestrate custom workflows, and respond to events from Adobe I/O Events to create powerful event-driven applications. For more information about Adobe I/O Runtime, read the [Runtime documentation](https://www.adobe.com/go/devs_runtime). 44 | 45 | **Note:** Adobe I/O Runtime requires a license. Please contact your Adobe sales representative for more details. 46 | 47 | * [Enable Runtime for your project or workspace](services-enable-runtime.md) 48 | 49 | ## Remove a service 50 | 51 | Occasionally you may need to remove a service once it has been added to your project or workspace. This can be done from within the project overview or workspace overview by selecting the service that you wish to remove. Please use the links above to access documentation specific to the type of service that you have added to your project (API or events), as this documentation also includes screenshots and instructions for removing the service. 52 | 53 | **Note:** Currently you cannot delete Runtime once it has been enabled for a project or workspace. If you no longer required Runtime, please create a new project and do not enable Runtime. 54 | 55 | ## Credentials 56 | 57 | Once you have successfully added APIs to your project or workspace, you can return to the **Project overview** (or **Workspace overview** in a templated project) at any time to view the details for that API and any other project services you may have added. You can select the specific API from the left navigation to view its details or remove the API using the **Remove API** button in the top-right corner. 58 | 59 | You can also select the specific credential type from the left navigation to view the **Credential details** and perform other actions (generate access tokens, copy credential details, retrieve client secrets, etc.) as needed. For more information on accessing credentials, please read the [credentials overview](../credentials.md). 60 | 61 | To view credentials for events, select the specific event registration from the left navigation and select the **Credentials** tab. For more information on working with events, including viewing event credentials, follow the guide for [adding Events to your project or workspace](services-add-event.md). 62 | 63 | ## Insights 64 | 65 | Adobe Developer Console automatically generates valuable insights related to API and Runtime usage for each enterprise project or for each workspace when working in a templated project. API insights are also generated for personal projects, however because Runtime cannot be added to personal projects, there are no Runtime usage insights available. 66 | 67 | To learn more about insights, read the [insights overview](../insights.md). 68 | 69 | ## Next steps 70 | 71 | You can continue to add as many services as you need by following the various [workflow guides](#service-specific-workflows) found in this document. 72 | 73 | Once you have completed development on your project and are ready to submit your application for approval, please read the [project approval guide](../projects/approval.md) to get started. 74 | 75 | -------------------------------------------------------------------------------- /src/pages/guides/services/services-add-api-jwt.md: -------------------------------------------------------------------------------- 1 | # Add API to project using Service Account (JWT) 2 | 3 | 4 | 5 | As of June 30, 2025, Service Account (JWT) credentials have reached their end of life and are no longer supported. All server-to-server integrations must use the [OAuth Server-to-Server credentials](../authentication/ServerToServerAuthentication/implementation.md). View the [migration guide](../authentication/ServerToServerAuthentication/migration.md) to know more. The new version of this guide that uses OAuth Server-to-Server credentials is now available here - [**Add API to project using OAuth Server-to-Server credentials**](services-add-api-oauth-s2s.md). 6 | -------------------------------------------------------------------------------- /src/pages/guides/services/services-add-api-key.md: -------------------------------------------------------------------------------- 1 | # Add API to project using API Key 2 | 3 | Adding an API to an empty project is the same whether you are working in a personal or enterprise project. Adding an API to a templated project is similar, with one small variation: APIs are added to individual workspaces, not to the project as a whole. 4 | 5 | To begin adding an API from within a templated project, first select the appropriate workspace to open the *Workspace overview*. Then, select **+ Add Service** in the left navigation and choose **API** from the dropdown. 6 | 7 | In an empty project, select **+Add to Project** in the left navigation of the *Project overview* and then choose **API**, or select **Add API** from the quick start buttons. 8 | 9 | ![](../../images/services-add-to-project.png) 10 | 11 | ## Add an API 12 | 13 | Using REST APIs allows your application to make calls to Adobe services and products. The *Add an API* dialog shows a list of available services with the default *View by* setting to show only those services available to you. 14 | 15 | 16 | 17 | Many services are only available through paid licenses or subscriptions. Licenses and subscriptions can refer to either your organization or your personal licenses if you are building a personal project. For this reason, if you select "All" from the *View by* dropdown, you may notice that several services appear greyed out in the list. If you believe that you should have access to one of these disabled services, please speak with your system administrator or Adobe sales representative. 18 | 19 | ![](../../images/services-add-api.png) 20 | 21 | Once you have found and chosen an API that you would like to add, select **Next** to begin configuring the API. 22 | 23 | ![](../../images/services-api-key-choose.png) 24 | 25 | ## Configure API 26 | 27 | Some Adobe services require authorization but do not require authentication. In this case, they can be called anonymously and typically provide consistent results regardless of the application or user that made the request. 28 | 29 | An API key is the only client credential required for these services, and integrations don’t need to pass an access token with each request. 30 | 31 | To configure an API using API key authorization, you must provide *Allowed domains*—a list of domains that are allowed to access this API, separated by commas. 32 | 33 | The domains should be entered without the protocol (`http://` of `https://`), but should include `www`. For example:[www.domain1.com](http://www.domain1.com/), [www.domain2.com](http://www.domain2.com/). 34 | 35 | Once the list of *Allowed domains* is complete, select **Save configured API** to complete the configuration. 36 | 37 | ![](../../images/services-api-key-configure.png) 38 | 39 | ## API overview 40 | 41 | With the API configured, you are redirected to the API overview, providing links to documentation, the ability to download files in order to experiment with the API using Postman, and the *Credential details* showing the API key that you just generated. 42 | 43 | You can also elect to remove the API on this screen using the *Remove API* button in the top-right corner. 44 | 45 | ![](../../images/services-api-key-added.png) 46 | 47 | ## Credentials 48 | 49 | Now that you have added an API, you can return to the *Project overview* (or *Workspace overview* in a templated project) at any time to view the details for that API and any other project services you may have added. 50 | 51 | You can select the specific API from the left navigation to view its details or remove the API using the **Remove API** button in the top-right corner. 52 | 53 | You can also select the specific credential type from under *Credentials* in the left navigation to view the *Credential details* and perform other actions (view API key, etc.) as needed. For more information on accessing credentials, please read the [credentials overview](../credentials.md). 54 | 55 | ## Insights 56 | 57 | Adobe Developer Console automatically generates valuable insights related to API usage for each enterprise project (or individual workspace when working in a templated project), as well as for each personal project, including XD Plugins. 58 | 59 | To learn more about insights, begin by reading the [insights overview](../insights.md). 60 | 61 | ## Next steps 62 | 63 | With an API successfully added, you can follow the same workflow steps to add additional APIs, or return to the [services overview](index.md) to select another type of service to add to your project. 64 | 65 | If you have completed development on your project and are ready to submit your application for approval, please read the [project approval guide](../projects/approval.md) to get started. 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /src/pages/guides/services/services-add-api-oauth.md: -------------------------------------------------------------------------------- 1 | # Add API to project using OAuth 2 | 3 | 4 | 5 | The new version of this guide is now available here - [Add API to project using OAuth User Authentication credentials](services-add-api-oauth-user-authentication.md). -------------------------------------------------------------------------------- /src/pages/guides/services/services-add-event.md: -------------------------------------------------------------------------------- 1 | # Add Events to a project 2 | 3 | Adobe I/O Events allow you to receive notifications of real-time events taking place in Adobe services. To add events to your project you must register a webhook, to which Adobe I/O Events sends HTTP POST requests containing the details of each event. Using Events, you can build event-driven applications that integrate with Adobe products and services. 4 | 5 | To learn more about Adobe I/O Events, read the [events documentation](https://www.adobe.com/go/devs_events). 6 | 7 | ## Add events 8 | 9 | To add events to your application, begin by navigating to the *Project overview* or *Workspace overview* if working in a templated project. You can then select **Add event** from the quick start menu or select **Event** from the *Add to Project* dropdown (or *Add Service* in a templated project). 10 | 11 | ![](../../images/events-get-started.png) 12 | 13 | The *Add events* dialog opens, providing a listing of Adobe event providers that can be filtered based on the products that are available to your organization. 14 | 15 | ![](../../images/events-add.png) 16 | 17 | Choose the event that you would like to add and select **Next** to begin configuring the events. 18 | 19 | ![](../../images/events-add-select.png) 20 | 21 | ## Configure 22 | 23 | The first step in configuration is to choose your event subscriptions. This requires you to select from the provided list which events you would like to receive notifications about from your chosen event providers. As events are chosen, they appear under *Subscribed Events* in the left navigation. 24 | 25 | ![](../../images/events-configure.png) 26 | 27 | ## Credentials 28 | 29 | The next step in configuring your event registration is to configure the authentication credentials. This could be a OAuth Server-to-Server credential or OAuth User authentication credential, depending on the type of event being configured. The example in this document uses OAuth 2.0 user authentication credential. 30 | 31 | 32 | 33 | To learn more about authentication and available types, visit the [authentication documentation](../authentication/index.md). 34 | 35 | To configure an Event using OAuth 2.0 user authentication credential, you must first select the platform where you want to use this integration: Web App, Single Page App, or Native App. Please note, depending on the selected event provider not all platform choices may be available. 36 | 37 | Once you have selected a platform, you will be required to provide a *Redirect URI*, which is a fallback URI to be used if the authorization request contains a redirect URI which doesn't match the Redirect URI list or doesn't contain a `redirect_uri` parameter. 38 | 39 | 40 | 41 | The *Redirect URI* must use HTTPS (for example, [https://redirect.com/uri/et](https://redirect.com/uri/et)) and cannot be a regular expression. 42 | 43 | After entering a redirect that matches the appropriate formatting, you can then select Next to proceed with event configuration. 44 | 45 | ![](../../images/events-configure-auth.png) 46 | 47 | ## Registration details 48 | 49 | To complete the configuration process, you must provide *Event registration details* including a custom name and description to differentiate this event registration from others in the project. 50 | 51 | You must also register a webhook by providing a **Webhook URL** to receive notifications about events and specifying how often you would like to receive events. Each event results in an HTTP request to the webhook URL, notifying your application about events. You can select the **Delivery Style** you prefer, receiving one event at a time ("Single") or multiple events together ("Batch"). 52 | 53 | To learn more about webhooks, visit the [webhooks documentation](https://www.adobe.com/go/devs_webhooks). 54 | 55 | After completing the *Event registration details* select **Save configured events** to complete the configuration. 56 | 57 | ![](../../images/events-configure-registration.png) 58 | 59 | ## Event overview 60 | 61 | Once events have been successfully configured, you will be taken to the event overview with tabs providing information regarding the *Registration Details*, *Credentials*, and *Debug Tracing*. 62 | 63 | You can also remove an event registration from the event overview by selecting **Delete Events Registration** in the top-right corner. 64 | 65 | ![](../../images/events-registration-details.png) 66 | 67 | ## Credentials 68 | 69 | The *Credentials* tab shows details related to the event authentication method, allowing you to perform actions such as copying a Client ID, retrieving the client secret, generating an access token, etc depending on the type of authentication used. 70 | 71 | ![](../../images/events-credentials.png) 72 | 73 | ## Debug Tracing 74 | 75 | The *Debug Tracing* tab shows details related to recent requests and responses related to the registered events. This includes the date and time, event ID, and more. 76 | 77 | ![](../../images/events-debug-tracing.png) 78 | 79 | ## Next steps 80 | 81 | Now that you have successfully added events to your project or workspace, you can follow this workflow again to add additional event registrations, or return to the [services overview](index.md) to select another type of service to add to your project. 82 | 83 | If you have completed development on your project and are ready to submit your application for approval, please read the [project approval guide](../projects/approval.md) to get started. -------------------------------------------------------------------------------- /src/pages/guides/services/services-enable-runtime.md: -------------------------------------------------------------------------------- 1 | # Enable Runtime 2 | 3 | Adobe I/O Runtime is Adobe’s serverless computing platform. Runtime enables you to execute functions from the cloud without deploying or configuring a server. This ability provides a flexible, on-demand computing resource that lets you easily access Adobe content, data, and services, orchestrate custom workflows, and respond to events from Adobe I/O Events to create powerful event-driven applications. 4 | 5 | 6 | 7 | Adobe I/O Runtime requires a license. Please contact your Adobe sales representative for more details. 8 | 9 | ## Enable Runtime for an empty project 10 | 11 | Runtime can be enabled for an empty project from the **Project overview**. You can select **Runtime** from the **Add to Project** dropdown menu in the left navigation, or select **Enable runtime** from the quick start menu in the center or the screen. After selecting Runtime using one of these options, you will be taken to the Runtime overview where you can begin to configure Runtime, as shown in the [Get started with Runtime](#get-started-with-runtime) section found later in this document. 12 | 13 | For more information on creating an empty project, please begin by reading the [projects overview](../projects/index.md). 14 | 15 | ![](../../images/runtime-empty-project.png) 16 | 17 | ## Enable Runtime for a templated project 18 | 19 | Runtime can be enabled for a template project during the project set up or by manually enabling Runtime for each individual workspace within the project. 20 | 21 | To automatically add Runtime during set up, ensure that the checkbox to "Include Runtime with each workspace" is checked before you select **Save** and complete the project set up. 22 | 23 | ![](../../images/set-up-templated-project.png) 24 | 25 | Once your project has been saved, the **Project overview** will be visible, showing the project workspaces and that Runtime has been enabled for each. 26 | 27 | ![](../../images/runtime-workspaces.png) 28 | 29 | When you select a workspace you will be taken to the **Workspace overview** which will show the newly created Runtime instance. Selecting the Runtime instance will take you to the Runtime overview where you can begin to configure Runtime, as shown in the [Get started with Runtime](#get-started-with-runtime) section found later in this document. 30 | 31 | For more information on creating a templated project, please begin by reading the [projects overview](../projects/index.md). 32 | 33 | ## Enable Runtime for a workspace 34 | 35 | When working on a templated project, you can add multiple workspaces depending on your project needs. Additional workspaces can be added during project set up, or can be added at any time by selecting **Add workspace** on the **Project overview**. 36 | 37 | If you would like to enable Runtime for an additional workspace, ensure that **Include Runtime namespace** is checked before selecting **Save** on the **Add workspace to project** dialog. 38 | 39 | For more information on adding workspaces to a templated project, please read the guide for [creating a templated project](../projects/projects-template.md). 40 | 41 | ![](../../images/runtime-add-workspace.png) 42 | 43 | Once added, the **Project overview** will display the new workspace, along with an indication that Runtime has been enabled. You can now select the workspace by choosing the card or using the **Workspaces** dropdown in the left navigation. 44 | 45 | This will open the **Workspace overview** which will show the newly created Runtime instance. Selecting the Runtime instance will take you to the Runtime overview where you can begin to configure Runtime, as shown in the [Get started with Runtime](#get-started-with-runtime) section found later in this document. 46 | 47 | ![](../../images/runtime-new-workspace.png) 48 | 49 | ## Get started with Runtime 50 | 51 | In order to get started with Adobe I/O Runtime, whether as part of an empty project or a templated project workspace, there are additional steps that must be completed outside of Developer Console. These steps include setting up your environment and deploying actions. 52 | 53 | For detailed instructions on installing and configuring the tools you will need on your machine in order to create and run actions, please follow the steps provided in the [Runtime getting started guide](https://www.adobe.com/go/devs_Runtime_get_started). 54 | 55 | ![](../../images/runtime-get-started.png) 56 | 57 | ## Remove Runtime from project or workspace 58 | 59 | Currently it is not possible to remove Runtime from a project or workspace within a project. Please create a new project or workspace if you no longer require Runtime. 60 | 61 | ## Insights 62 | 63 | Adobe Developer Console automatically generates valuable insights related to Runtime usage for each project or individual workspace within a templated project. 64 | 65 | To learn more about insights, begin by reading the [insights overview](../insights.md). 66 | 67 | ## Next steps 68 | 69 | With Runtime successfully added to your project or workspace, you can now return to the [services overview](index.md) to select another type of service to add to your project. 70 | 71 | If you have completed development on your project and are ready to submit your application for approval, please read the [project approval guide](../projects/approval.md) to get started. -------------------------------------------------------------------------------- /src/pages/images/access-denied-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/access-denied-screen.png -------------------------------------------------------------------------------- /src/pages/images/activate-email-alerts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/activate-email-alerts.png -------------------------------------------------------------------------------- /src/pages/images/add-email-alert-recipient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/add-email-alert-recipient.png -------------------------------------------------------------------------------- /src/pages/images/apis-and-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/apis-and-services.png -------------------------------------------------------------------------------- /src/pages/images/approval-app-rejected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-app-rejected.png -------------------------------------------------------------------------------- /src/pages/images/approval-app-submission-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-app-submission-details.png -------------------------------------------------------------------------------- /src/pages/images/approval-empty-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-empty-project.png -------------------------------------------------------------------------------- /src/pages/images/approval-in-review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-in-review.png -------------------------------------------------------------------------------- /src/pages/images/approval-personal-app-in-review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-personal-app-in-review.png -------------------------------------------------------------------------------- /src/pages/images/approval-personal-app-submission-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-personal-app-submission-details.png -------------------------------------------------------------------------------- /src/pages/images/approval-production-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-production-overview.png -------------------------------------------------------------------------------- /src/pages/images/approval-public-profile-in-review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-public-profile-in-review.png -------------------------------------------------------------------------------- /src/pages/images/approval-public-profile-published.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-public-profile-published.png -------------------------------------------------------------------------------- /src/pages/images/approval-published.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-published.png -------------------------------------------------------------------------------- /src/pages/images/approval-submit-for-approval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/approval-submit-for-approval.png -------------------------------------------------------------------------------- /src/pages/images/beta-users-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/beta-users-add.png -------------------------------------------------------------------------------- /src/pages/images/beta-users-clear-confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/beta-users-clear-confirm.png -------------------------------------------------------------------------------- /src/pages/images/beta-users-clear-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/beta-users-clear-list.png -------------------------------------------------------------------------------- /src/pages/images/beta-users-clear-upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/beta-users-clear-upload.png -------------------------------------------------------------------------------- /src/pages/images/beta-users-list-saved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/beta-users-list-saved.png -------------------------------------------------------------------------------- /src/pages/images/beta-users-project-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/beta-users-project-overview.png -------------------------------------------------------------------------------- /src/pages/images/beta-users-upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/beta-users-upload.png -------------------------------------------------------------------------------- /src/pages/images/browse-templates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/browse-templates.png -------------------------------------------------------------------------------- /src/pages/images/console_dnl_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_dnl_1.png -------------------------------------------------------------------------------- /src/pages/images/console_dnl_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_dnl_2.png -------------------------------------------------------------------------------- /src/pages/images/console_int_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_int_1.png -------------------------------------------------------------------------------- /src/pages/images/console_int_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_int_2.png -------------------------------------------------------------------------------- /src/pages/images/console_int_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_int_3.png -------------------------------------------------------------------------------- /src/pages/images/console_int_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_int_4.png -------------------------------------------------------------------------------- /src/pages/images/console_int_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_int_5.png -------------------------------------------------------------------------------- /src/pages/images/console_ovw_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_ovw_1.png -------------------------------------------------------------------------------- /src/pages/images/console_plg_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plg_1.png -------------------------------------------------------------------------------- /src/pages/images/console_plg_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plg_2.png -------------------------------------------------------------------------------- /src/pages/images/console_plg_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plg_3.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_add_new_version.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_add_new_version.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_add_new_version_review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_add_new_version_review.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_create.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_distribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_distribute.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_distribute_add_language.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_distribute_add_language.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_distribute_in_review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_distribute_in_review.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_distribute_localization_complete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_distribute_localization_complete.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_distribute_plugin_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_distribute_plugin_file.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_landing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_landing.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_landing_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_landing_project.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_listing_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_listing_info.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_listing_language.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_listing_language.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_listing_new_version.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_listing_new_version.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_project_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_project_overview.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_published.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_published.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_version_plugin_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_version_plugin_file.png -------------------------------------------------------------------------------- /src/pages/images/console_plugins_version_review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/console_plugins_version_review.png -------------------------------------------------------------------------------- /src/pages/images/create-new-project-quick-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/create-new-project-quick-start.png -------------------------------------------------------------------------------- /src/pages/images/create-new-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/create-new-project.png -------------------------------------------------------------------------------- /src/pages/images/create-project-from-template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/create-project-from-template.png -------------------------------------------------------------------------------- /src/pages/images/credentials-api-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/credentials-api-key.png -------------------------------------------------------------------------------- /src/pages/images/credentials-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/credentials-details.png -------------------------------------------------------------------------------- /src/pages/images/credentials-generate-jwt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/credentials-generate-jwt.png -------------------------------------------------------------------------------- /src/pages/images/credentials-generated-jwt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/credentials-generated-jwt.png -------------------------------------------------------------------------------- /src/pages/images/credentials-oauth-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/credentials-oauth-web.png -------------------------------------------------------------------------------- /src/pages/images/credentials-project-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/credentials-project-overview.png -------------------------------------------------------------------------------- /src/pages/images/developer-console-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/developer-console-home.png -------------------------------------------------------------------------------- /src/pages/images/download-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/download-details.png -------------------------------------------------------------------------------- /src/pages/images/download-sdk-history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/download-sdk-history.png -------------------------------------------------------------------------------- /src/pages/images/download-terms-conditions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/download-terms-conditions.png -------------------------------------------------------------------------------- /src/pages/images/downloads-and-SDKs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/downloads-and-SDKs.png -------------------------------------------------------------------------------- /src/pages/images/downloads-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/downloads-details.png -------------------------------------------------------------------------------- /src/pages/images/downloads-download-started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/downloads-download-started.png -------------------------------------------------------------------------------- /src/pages/images/downloads-history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/downloads-history.png -------------------------------------------------------------------------------- /src/pages/images/downloads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/downloads.png -------------------------------------------------------------------------------- /src/pages/images/empty-project-add-to-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/empty-project-add-to-project.png -------------------------------------------------------------------------------- /src/pages/images/empty-project-created.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/empty-project-created.png -------------------------------------------------------------------------------- /src/pages/images/enterprise-web-app-admin-auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/enterprise-web-app-admin-auth.png -------------------------------------------------------------------------------- /src/pages/images/enterprise-web-app-apis-and-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/enterprise-web-app-apis-and-services.png -------------------------------------------------------------------------------- /src/pages/images/enterprise-web-app-client-secret-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/enterprise-web-app-client-secret-add.png -------------------------------------------------------------------------------- /src/pages/images/enterprise-web-app-client-secret-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/enterprise-web-app-client-secret-delete.png -------------------------------------------------------------------------------- /src/pages/images/enterprise-web-app-client-secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/enterprise-web-app-client-secret.png -------------------------------------------------------------------------------- /src/pages/images/enterprise-web-app-consent-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/enterprise-web-app-consent-screen.png -------------------------------------------------------------------------------- /src/pages/images/enterprise-web-app-credential-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/enterprise-web-app-credential-name.png -------------------------------------------------------------------------------- /src/pages/images/enterprise-web-app-credential-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/enterprise-web-app-credential-overview.png -------------------------------------------------------------------------------- /src/pages/images/enterprise-web-app-generate-access-token-uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/enterprise-web-app-generate-access-token-uml.png -------------------------------------------------------------------------------- /src/pages/images/enterprise-web-app-redirect-url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/enterprise-web-app-redirect-url.png -------------------------------------------------------------------------------- /src/pages/images/events-add-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/events-add-select.png -------------------------------------------------------------------------------- /src/pages/images/events-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/events-add.png -------------------------------------------------------------------------------- /src/pages/images/events-configure-auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/events-configure-auth.png -------------------------------------------------------------------------------- /src/pages/images/events-configure-registration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/events-configure-registration.png -------------------------------------------------------------------------------- /src/pages/images/events-configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/events-configure.png -------------------------------------------------------------------------------- /src/pages/images/events-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/events-credentials.png -------------------------------------------------------------------------------- /src/pages/images/events-debug-tracing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/events-debug-tracing.png -------------------------------------------------------------------------------- /src/pages/images/events-get-started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/events-get-started.png -------------------------------------------------------------------------------- /src/pages/images/events-registration-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/events-registration-details.png -------------------------------------------------------------------------------- /src/pages/images/generate-certificate-key-pair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/generate-certificate-key-pair.png -------------------------------------------------------------------------------- /src/pages/images/insights-api-detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/insights-api-detail.png -------------------------------------------------------------------------------- /src/pages/images/insights-api-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/insights-api-overview.png -------------------------------------------------------------------------------- /src/pages/images/insights-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/insights-overview.png -------------------------------------------------------------------------------- /src/pages/images/insights-runtime-action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/insights-runtime-action.png -------------------------------------------------------------------------------- /src/pages/images/insights-runtime-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/insights-runtime-overview.png -------------------------------------------------------------------------------- /src/pages/images/new-project-created.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/new-project-created.png -------------------------------------------------------------------------------- /src/pages/images/oauth-server-to-server-credential-add-client-secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/oauth-server-to-server-credential-add-client-secret.png -------------------------------------------------------------------------------- /src/pages/images/oauth-server-to-server-credential-added-client-secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/oauth-server-to-server-credential-added-client-secret.png -------------------------------------------------------------------------------- /src/pages/images/oauth-server-to-server-credential-check-client-secret-timestamps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/oauth-server-to-server-credential-check-client-secret-timestamps.png -------------------------------------------------------------------------------- /src/pages/images/oauth-server-to-server-credential-delete-old-client-secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/oauth-server-to-server-credential-delete-old-client-secret.png -------------------------------------------------------------------------------- /src/pages/images/oauth-server-to-server-credential-generate-access-tokens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/oauth-server-to-server-credential-generate-access-tokens.png -------------------------------------------------------------------------------- /src/pages/images/oauth-server-to-server-credential-name-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/oauth-server-to-server-credential-name-update.png -------------------------------------------------------------------------------- /src/pages/images/oauth-server-to-server-credential-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/oauth-server-to-server-credential-name.png -------------------------------------------------------------------------------- /src/pages/images/oauth-server-to-server-credential-product-profiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/oauth-server-to-server-credential-product-profiles.png -------------------------------------------------------------------------------- /src/pages/images/pause-email-alerts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/pause-email-alerts.png -------------------------------------------------------------------------------- /src/pages/images/personal-org-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/personal-org-select.png -------------------------------------------------------------------------------- /src/pages/images/personal-org.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/personal-org.png -------------------------------------------------------------------------------- /src/pages/images/personal-project-add-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/personal-project-add-plugin.png -------------------------------------------------------------------------------- /src/pages/images/personal-project-created.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/personal-project-created.png -------------------------------------------------------------------------------- /src/pages/images/plugin-add-a-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-add-a-plugin.png -------------------------------------------------------------------------------- /src/pages/images/plugin-add-new-version.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-add-new-version.png -------------------------------------------------------------------------------- /src/pages/images/plugin-create-listing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-create-listing.png -------------------------------------------------------------------------------- /src/pages/images/plugin-created.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-created.png -------------------------------------------------------------------------------- /src/pages/images/plugin-distribute-complete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-distribute-complete.png -------------------------------------------------------------------------------- /src/pages/images/plugin-distribute-docs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-distribute-docs.png -------------------------------------------------------------------------------- /src/pages/images/plugin-distribute-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-distribute-file.png -------------------------------------------------------------------------------- /src/pages/images/plugin-distribute-steps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-distribute-steps.png -------------------------------------------------------------------------------- /src/pages/images/plugin-distribute-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-distribute-success.png -------------------------------------------------------------------------------- /src/pages/images/plugin-distribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-distribute.png -------------------------------------------------------------------------------- /src/pages/images/plugin-download-starter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-download-starter.png -------------------------------------------------------------------------------- /src/pages/images/plugin-listing-information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-listing-information.png -------------------------------------------------------------------------------- /src/pages/images/plugin-new-version-in-review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-new-version-in-review.png -------------------------------------------------------------------------------- /src/pages/images/plugin-photoshop-fastspring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-photoshop-fastspring.png -------------------------------------------------------------------------------- /src/pages/images/plugin-photoshop-purchase-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-photoshop-purchase-method.png -------------------------------------------------------------------------------- /src/pages/images/plugin-preview-submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-preview-submit.png -------------------------------------------------------------------------------- /src/pages/images/plugin-project-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-project-overview.png -------------------------------------------------------------------------------- /src/pages/images/plugin-publisher-information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/plugin-publisher-information.png -------------------------------------------------------------------------------- /src/pages/images/production-workspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/production-workspace.png -------------------------------------------------------------------------------- /src/pages/images/project-activity-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/project-activity-log.png -------------------------------------------------------------------------------- /src/pages/images/project-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/project-delete.png -------------------------------------------------------------------------------- /src/pages/images/project-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/project-overview.png -------------------------------------------------------------------------------- /src/pages/images/project-personal-listing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/project-personal-listing.png -------------------------------------------------------------------------------- /src/pages/images/projects-card-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/projects-card-view.png -------------------------------------------------------------------------------- /src/pages/images/projects-export-activity-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/projects-export-activity-log.png -------------------------------------------------------------------------------- /src/pages/images/projects-list-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/projects-list-view.png -------------------------------------------------------------------------------- /src/pages/images/projects-read-only.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/projects-read-only.png -------------------------------------------------------------------------------- /src/pages/images/projects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/projects.png -------------------------------------------------------------------------------- /src/pages/images/public-profile-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/public-profile-button.png -------------------------------------------------------------------------------- /src/pages/images/public-profile-commerce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/public-profile-commerce.png -------------------------------------------------------------------------------- /src/pages/images/public-profile-complete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/public-profile-complete.png -------------------------------------------------------------------------------- /src/pages/images/public-profile-contact-to-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/public-profile-contact-to-update.png -------------------------------------------------------------------------------- /src/pages/images/public-profile-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/public-profile-create.png -------------------------------------------------------------------------------- /src/pages/images/public-profile-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/public-profile-edit.png -------------------------------------------------------------------------------- /src/pages/images/public-profile-view-only.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/public-profile-view-only.png -------------------------------------------------------------------------------- /src/pages/images/quick-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/quick-start.png -------------------------------------------------------------------------------- /src/pages/images/quota-usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/quota-usage.png -------------------------------------------------------------------------------- /src/pages/images/recent-projects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/recent-projects.png -------------------------------------------------------------------------------- /src/pages/images/remove-certificate-key-pair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/remove-certificate-key-pair.png -------------------------------------------------------------------------------- /src/pages/images/remove-email-alert-recipient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/remove-email-alert-recipient.png -------------------------------------------------------------------------------- /src/pages/images/resources.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/resources.png -------------------------------------------------------------------------------- /src/pages/images/runtime-add-workspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/runtime-add-workspace.png -------------------------------------------------------------------------------- /src/pages/images/runtime-empty-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/runtime-empty-project.png -------------------------------------------------------------------------------- /src/pages/images/runtime-get-started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/runtime-get-started.png -------------------------------------------------------------------------------- /src/pages/images/runtime-new-workspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/runtime-new-workspace.png -------------------------------------------------------------------------------- /src/pages/images/runtime-workspaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/runtime-workspaces.png -------------------------------------------------------------------------------- /src/pages/images/services-add-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-add-api.png -------------------------------------------------------------------------------- /src/pages/images/services-add-to-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-add-to-project.png -------------------------------------------------------------------------------- /src/pages/images/services-api-key-added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-key-added.png -------------------------------------------------------------------------------- /src/pages/images/services-api-key-choose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-key-choose.png -------------------------------------------------------------------------------- /src/pages/images/services-api-key-configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-key-configure.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-configure.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-s2s-added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-s2s-added.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-s2s-choose-profiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-s2s-choose-profiles.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-s2s-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-s2s-create.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-s2s-generate-token-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-s2s-generate-token-2.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-s2s-generate-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-s2s-generate-token.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-s2s-view-curl-command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-s2s-view-curl-command.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-s2s-view-scopes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-s2s-view-scopes.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-select.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-user-auth-added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-user-auth-added.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-user-auth-credential-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-user-auth-credential-overview.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-user-auth-credential-scopes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-user-auth-credential-scopes.png -------------------------------------------------------------------------------- /src/pages/images/services-api-oauth-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-api-oauth-web.png -------------------------------------------------------------------------------- /src/pages/images/services-overview-add-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-overview-add-api.png -------------------------------------------------------------------------------- /src/pages/images/services-select-api-oauth-s2s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/services-select-api-oauth-s2s.png -------------------------------------------------------------------------------- /src/pages/images/set-up-templated-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/set-up-templated-project.png -------------------------------------------------------------------------------- /src/pages/images/switch-organizations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/switch-organizations.png -------------------------------------------------------------------------------- /src/pages/images/templated-project-add-workspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/templated-project-add-workspace.png -------------------------------------------------------------------------------- /src/pages/images/templated-project-app-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/templated-project-app-name.png -------------------------------------------------------------------------------- /src/pages/images/templated-project-title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/templated-project-title.png -------------------------------------------------------------------------------- /src/pages/images/templated-project-workspaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/templated-project-workspaces.png -------------------------------------------------------------------------------- /src/pages/images/user-view-request-access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/user-view-request-access.png -------------------------------------------------------------------------------- /src/pages/images/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/welcome.png -------------------------------------------------------------------------------- /src/pages/images/what-is-a-credential.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/what-is-a-credential.png -------------------------------------------------------------------------------- /src/pages/images/workspace-add-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/workspace-add-service.png -------------------------------------------------------------------------------- /src/pages/images/workspace-get-started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/workspace-get-started.png -------------------------------------------------------------------------------- /src/pages/images/workspace-products-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-dev-console/39cdc8fb7166a9a5a478598689a7355e06d6c20e/src/pages/images/workspace-products-services.png -------------------------------------------------------------------------------- /src/pages/support/index.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Adobe Developer Console Support 4 | 5 | If you have questions about how to use Adobe Developer Console or you are looking to report bugs, make feature requests, and more, Developer Console provides multiple resources that can help. 6 | 7 | ## Frequently Asked Questions 8 | 9 | Access a knowledge base of frequently asked questions and find answers to some of the most common questions asked by other Adobe Developer Console users. This is a great place to start when needing answers to a question. 10 | 11 | Visit the [Adobe Developer Console FAQ](faq.md) to learn more. 12 | 13 | ## Developer Forums 14 | 15 | To start a discussion or ask questions please visit our [Developer Console Forums](https://www.adobe.com/go/devs_console_exl) on Adobe Experience League. 16 | 17 | On the forums you will find official Adobe developers and knowledgeable community members who are ready and available to help you find the information you need. 18 | 19 | ## Bugs and Feature Requests 20 | 21 | Log an issue on the [Developer Console Github issue](https://github.com/AdobeDocs/adobe-dev-console/issues) to report any bugs or request new product features. 22 | --------------------------------------------------------------------------------