# Create a new Developer Console application On this page, we will walk through the following processes of creating a new Developer Console application: * Adding object types, Action types, and other Ontology resources to the SDK application. * Adding operations and resources for Platform API access. * Generating packages in any of the supported languages. * Using custom documentation generated for your application-specific SDK. ## Create an application using Developer Console [Navigate to Developer Console](../overview/index.md) in your Foundry instance, then select **+ New application**. :::callout{theme="neutral"} If you do not see the **+ New application** button, you may require additional permissions. See the [permissions documentation](../permissions/index.md#user-permissions) for more details. ::: Next, follow the steps in the creation wizard that appears and add the following details: * On the **Basic information** page, add an icon to your application; the icon will be used to identify the application when the user is presented with a consent screen. ![The OAuth consent screen preview displays the application icon and name.](../../../assets/e92910d28725c89fc67889749a0f1ee0e7121b96dd98cbc75c4901a2593b00b9.webp) * On the **Application type** page, choose [**Client-facing application**](../permissions/index.md). For a backend service or server-side application that uses a service user, choose **Backend service** instead and follow [Bootstrap a back-end TypeScript application](../how-to-bootstrapping-server-side-typescript/index.md) for a complete walkthrough. ![The application type selection page with client-facing application selected.](../../../assets/d020e2e35e90d80d784380c195d78391d6635bce38dc5dc61079341b664dbed6.webp) * On the **Authorization code grant** section of the **Permissions** page, set the redirect URL to `http://localhost:8080/auth/callback`. ![The redirect URL is correctly entered in the Redirect URL field in the Authorization code grant section.](../../../assets/6aa231fd71c9232aa67409939341771742e093ee52aa02082ba35b091f74fcc9.webp) :::callout{theme="warning"} Follow the instructions in [Configure CORS](../../administration/configure-cors/index.md) to add `http://localhost:8080` to your CORS policy in Control Panel. If you do not have permission to configure CORS and your Foundry administrator is unable to configure CORS for you, set the redirect URL to `https://localhost:8080/auth/callback`. ::: ### Resources * On the **Resources** page, select **Yes, generate an Ontology SDK**. ![Select the option to indicate you want to use the Ontology SDK.](../../../assets/08a7fc1599c814e3cc2296788523b79ada11db17b2fd86a1633cdf8484d61efc.webp) * Select an Ontology to use. You can select any Ontology regardless of namespace. :::callout{theme="warning"} Once the Ontology SDK has been generated, the Ontology associated with it cannot be changed. ::: * Select the object types and action types that you want the OSDK package to include. For this exercise, pick any object type available to you. ![Select the Ontology you want to use in the SDK and the specific object types or action types.](../../../assets/dca7a275861f9b6a68d297a09ed1dd1e873d731183dedad777bf252b352dc001.webp) The data entities that you choose control two aspects of your application. Language-specific bindings and the integrated API documentation are generated based on the entities you select. The token you receive as a result of going through the OAuth 2.0 flow is also restricted by default to the set of entities selected. For more details, see [Resource access restrictions](../permissions/index.md#resource-access-restrictions). * If you need to make [Platform API requests](../../api/general/overview/introduction/index.md) using your application, be sure to add the appropriate resources and operations through the **Platform SDK** tab. ![Use the Platform SDK tab to include Platform SDK resources.](../../../assets/ec6f68013cba658282832a97a7a1d3f899ac6b182b4e6148de1e203af14347ff.webp) :::callout{theme="warning"} The operations granted in the **Client allowed operations** table may allow applications to access underlying service endpoints. ::: * Review and confirm the information you entered, then select **Create application** to create the application. * Finally, you must select **Generate first version** to get the first version of the created package. ![Select the Generate first version button to create your SDK.](../../../assets/4891b0b5cd02ced51a47070f23276f1ee625ebc01be50089b16cb7d970cca523.webp) ## Set application restrictions after creation The creation wizard does not include a restricted or unrestricted setting. Every application is created as a [restricted application](../application-restrictions/index.md#restricted-applications), which means Developer Console controls the resources and operations the application may use in Foundry. If your application instead needs broad, platform-wide access—for example, to reach resources that are not inside a project—change the setting once the application exists: 1. Open the application and select **OAuth & restrictions** from the left navigation panel. 2. Under **Application restrictions**, select **Unrestricted**. For the full sequence, including the authentication choices to make while creating the application, see [Create an unrestricted application](../application-restrictions/index.md#create-an-unrestricted-application). ## Ontology-specific documentation The Developer Console generates documentation based on the Ontology entities you selected. This documentation is available for TypeScript, Python, and cURL; you can switch between the different languages using the dropdown menu in the upper right corner of the Console. ![Ontology-specific documentation for the "Aircraft" object type in the Developer Console.](../../../assets/d1c23d1003036b136a31ffc6a1377d93b2d33ddc1ecbc36acfb26e5eae05f0b4.webp) In the example above, each object type, action type, and function is documented. The documentation includes code examples of how specific properties are returned or how parameters can be used; you can copy and paste these examples directly into your code. ## Next steps * **[Set application restrictions](#set-application-restrictions-after-creation):** Every application is created restricted. Change this if your application needs broad, platform-wide access. * **[Request a scope at authorization time](../application-restrictions/index.md#request-a-scope-at-authorization-time):** Define the operations your application requests in code. * **[Host your application on Foundry](../deploy-custom-application-on-foundry/index.md):** Serve a frontend-only application from a Foundry subdomain.