> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - If a reference page seems to be missing its schema (parameters, return types, or type definitions), append `?schema=true` to its `.md` URL (e.g. `https://dev.wix.com/docs/contexts/contexts/stores/category-info/use-category-info-context.md?schema=true`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# Resource: Apps

# Type: App Object

# Link: https://dev.wix.com/docs/api-reference/app-management/apps/app-object.md

## Description: An app defines the identity and configuration of an extension built for Wix.
It contains ownership information, identifiers, authentication settings, and installation preferences.
Components, permissions, webhooks, dependencies, and versions are managed through related APIs.

## Schema:

```json
 Type: App Object | type: App
 Description: An app defines the identity and configuration of an extension built for Wix.
It contains ownership information, identifiers, authentication settings, and installation preferences.
Components, permissions, webhooks, dependencies, and versions are managed through related APIs.
       - name: id  | type: string | description: App ID.
           - name: value  | type: string | description: 
       - name: name  | type: string | description: The display name shown to users and in App Market after publication, separate from the namespace, slug, and code identifier. Apps intended for publication in the Wix App Market should have a name of no more than 30 characters. On creation and update, `<`, `>`, double quotes, and apostrophes are escaped as `&lt;`, `&gt;`, `&quot;`, and `&apos;`. Responses contain the escaped value, which can be longer than the submitted name.
       - name: accountId  | type: string | description: ID of the account that owns the app.
       - name: appSecrets  | type: AppSecrets | description: Secrets for authentication and webhooks. Omitted from Get App responses by default. To retrieve them, include `APP_SECRETS` in Get App's `additionalFields`. Requires authorization to access the app's secrets.
           - name: appSecret  | type: string | description: App authentication secret. Keep this value in a secure backend secret store. During rotation, this field contains the previous secret while both secrets exist. After the previous secret is retired, this field contains the replacement secret.
           - name: webhookPublicKey  | type: string | description: PEM-encoded RSA public key used to verify webhook event payloads.
           - name: appSecondarySecret  | type: string | description: Replacement authentication secret used during rotation. Present while the app has two secrets. After the previous secret is retired, this value moves to `appSecret` and this field is cleared.
           - name: secondarySecretActive  | type: boolean | description: Whether the secondary secret is used for token signing. This doesn't indicate whether it is accepted for authentication.
       - name: namespace  | type: string | description: App namespace, combining an account or company identifier with an app-name component. For example, `@example-company/bookings-helper`. Assign it once through Set Namespace after creating the app. Don't supply it to Create App or Update App. Set Namespace fails if the app already has a namespace.
       - name: codeIdentifier  | type: string | description: An identifier for referencing the app in code, separate from its display name, namespace, and slug. Must start with a letter, underscore, or dollar sign; remaining characters can also include digits. JavaScript reserved words aren't rejected. Choose a non-reserved identifier if using this value as a JavaScript variable name. Unique for non-companion apps. Companion apps return the shared value `companionApp`; use `id` to uniquely identify an app. For example, the namespace `@app-builder/my-cool-app` can be represented by the code identifier `AppBuilderMyCoolApp`.
       - name: status  | type: string | description: The state of the application.
           enum: ACTIVE, ARCHIVED
       - name: revision  | type: string | description: Revision number, which increments by 1 each time the app is updated. To prevent conflicting changes, supply the current revision when calling Update App. Retrieve the latest revision through Get App before updating. Ignored when creating an app.
           - name: value  | type: string | description: 
       - name: slug  | type: string | description: A human-readable, URL-friendly identifier for the app.
       - name: appUrls  | type: AppUrls | description: URL settings for Advanced OAuth and post-installation navigation. Using Advanced OAuth through `appUri` and `redirectUris` is highly discouraged. See [Advanced OAuth](https://dev.wix.com/docs/build-apps/develop-your-app/access/authentication/use-advanced-oauth.md).
           - name: appUri  | type: string | description: App URL used to initiate Advanced OAuth, whose use is highly discouraged.
           - name: redirectUris  | type: Array<string> | description: Allowed redirect URLs for Advanced OAuth, whose use is highly discouraged.
           - name: postInstallationUrls  | type: Array<string> | description: Allowed post-installation URLs, where Wix redirects the user after installing the app from an external install link. The `postInstallationUrl` must match an entry, unless it is a Wix-managed destination allowed separately. URLs are compared after normalizing whitespace and ignoring query strings and fragments. To replace this list without changing other URL settings, use Update App with `appUrls.postInstallationUrls` in the field mask.
       - name: createdBy  | type: CreatedBy | description: Identity and creation channel of the user or app that created the app, including its source template when applicable. Create App derives `id` and `type` from the caller's identity, replacing any supplied values. You can supply `sourceTemplateId` during creation. Creator information can't be changed through Update App.
           - name: id  | type: string | description: Creator ID derived from the caller's identity; a supplied value is replaced during creation. Identifies a user for `USER`, `CODE_GEN`, and `APP_BUILDER_SELF_HOSTED`, or an app for `APP`.
           - name: type  | type: string | description: Creator identity or creation channel, derived from the caller's identity rather than a supplied value.
               enum: USER, APP, CODE_GEN, APP_BUILDER_SELF_HOSTED
           - name: sourceTemplateId  | type: string | description: ID of the source template, when applicable. Can be supplied to Create App.
       - name: installationPreferences  | type: InstallationPreferences | description: Settings for post-installation navigation, opening the app, and uninstalling it.
           - name: overridePostInstallationRedirect  | type: string | description: Preferred destination after installing an app with both editor and dashboard components. A recognized dashboard page in `postInstallationComponentId` takes precedence over this preference. Otherwise, `DASHBOARD` selects the dashboard and `EDITOR` selects the editor. On sites without an editor, `EDITOR` falls back to the dashboard. `UNKNOWN_REDIRECT_TARGET` leaves the default installation navigation unchanged.
               enum: UNKNOWN_REDIRECT_TARGET, DASHBOARD, EDITOR
           - name: postInstallationComponentId  | type: string | description: Optional ID of the app's dashboard page to open after installation. A recognized dashboard page takes precedence over `overridePostInstallationRedirect`. If omitted or not recognized as a dashboard page, navigation uses the redirect preference or the default installation flow. This field doesn't select an editor component.
           - name: openButtonAction  | type: string | description: Action performed when the user selects the app's Open button after installation. For `OPEN_COMPONENT_ID`, supply `openComponentIdOptions.componentId`. `UNKNOWN_ACTION` means no explicit component-opening action is selected.
               enum: UNKNOWN_ACTION, OPEN_COMPONENT_ID
           - name: uninstallAction  | type: string | description: Custom warning shown when a user tries to uninstall the app. Select `NO_ACTION` for no custom warning; `NONE_ACTION` represents an unspecified preference. The product and shipping values select warning text, rather than performing cleanup.
               enum: NONE_ACTION, NO_ACTION, REMOVE_ALL_PRODUCT, SHIPPING_RATES_REGION
           - ONE-OF:
               - name: openComponentIdOptions  | type: OpenComponentId | description: Component to open. Supply `componentId` when `openButtonAction` is `OPEN_COMPONENT_ID`.
                   - name: componentId  | type: string | description: ID of the component opened when the user selects the app's Open button.
       - name: createdDate  | type: string | description: Date and time the app was created.
           - name: seconds  | type: string | description: 
           - name: nanos  | type: number | description: 
       - name: updatedDate  | type: string | description: Date and time the app was last updated.
       - name: unreleasedChanges  | type: UnreleasedChanges | description: Automatically calculated, event-based tracking of unreleased changes, grouped by type. Updates asynchronously; see each flag for its tracking scope.
           - name: componentsChanges  | type: boolean | description: Whether components have unreleased creation, update, or deletion changes.
           - name: appTranslationsChanges  | type: boolean | description: Whether app translations have unreleased creation or update changes.
           - name: componentsTranslationChanges  | type: boolean | description: Whether component translations have unreleased update changes. Component-translation creation events currently aren't reflected in this flag.
           - name: appPermissionsChanges  | type: boolean | description: Whether app permissions have unreleased creation or update changes. Permission-deletion events currently aren't reflected in this flag.
           - name: appEntityChanges  | type: boolean | description: Whether app identity fields have unreleased changes, such as `name`, `slug`, `namespace`, and `codeIdentifier`. Doesn't track changes to `appUrls` or `installationPreferences`. Updates asynchronously after the app's update event; the update response may not yet reflect this flag.
       - name: companionApp  | type: boolean | description: Indicates whether this app is a companion app assigned to a specific site or account.
           - name: value  | type: boolean | description: 

```