applications
Creates, updates, deletes, gets or lists an applications resource.
Overview​
| Name | applications |
| Type | Resource |
| Id | okta.apps.applications |
Fields​
The following fields are returned by SELECT queries:
- get_application
- list_applications
| Name | Datatype | Description |
|---|---|---|
id | string | Unique ID for the app instance |
_embedded | object | Embedded resources related to the app using the JSON Hypertext Application Language specification. If the expand=user/{userId} query parameter is specified, then the assigned Application User is embedded. |
_links | object | Discoverable resources related to the app |
accessibility | object | Specifies access settings for the app |
created | string (date-time) | Timestamp when the application object was created |
expressConfiguration | object | <div class="x-lifecycle-container"><x-lifecycle class="oie"></x-lifecycle></div> Indicates which Express Configuration capabilities the app supports and has enabled |
features | array | Enabled app features > Note: See Application Features for app provisioning features. |
label | string | User-defined display name for app |
lastUpdated | string (date-time) | Timestamp when the application object was last updated |
licensing | object | Licenses for the app |
orn | string | The Okta resource name (ORN) for the current app instance |
profile | object | Contains any valid JSON schema for specifying properties that can be referenced from a request (only available to OAuth 2.0 client apps). For example, add an app manager contact email address or define an allowlist of groups that you can then reference using the Okta Expression Language getFilteredGroups function. > Notes: > * profile isn't encrypted, so don't store sensitive data in it. > * profile doesn't limit the level of nesting in the JSON schema you created, but there is a practical size limit. Okta recommends a JSON schema size of 1 MB or less for best performance. |
signOnMode | string | Authentication mode for the app | signOnMode | Description | | ---------- | ----------- | | AUTO_LOGIN | Secure Web Authentication (SWA) | | BASIC_AUTH | HTTP Basic Authentication with Okta Browser Plugin | | BOOKMARK | Just a bookmark (no-authentication) | | BROWSER_PLUGIN | Secure Web Authentication (SWA) with Okta Browser Plugin | | OPENID_CONNECT | Federated Authentication with OpenID Connect (OIDC) | | SAML_1_1 | Federated Authentication with SAML 1.1 WebSSO (not supported for custom apps) | | SAML_2_0 | Federated Authentication with SAML 2.0 WebSSO | | SECURE_PASSWORD_STORE | Secure Web Authentication (SWA) with POST (plugin not required) | | WS_FEDERATION | Federated Authentication with WS-Federation Passive Requestor Profile | Select the signOnMode for your custom app: (AUTO_LOGIN, BASIC_AUTH, BOOKMARK, BROWSER_PLUGIN, OPENID_CONNECT, SAML_1_1, SAML_2_0, SECURE_PASSWORD_STORE, WS_FEDERATION) |
status | string | App instance status (ACTIVE, DELETED, INACTIVE) |
universalLogout | object | <div class="x-lifecycle-container"><x-lifecycle class="oie"></x-lifecycle></div> Universal Logout properties for the app. These properties are only returned and can't be updated. (example: ACTIVE) |
visibility | object | Specifies visibility settings for the app |
| Name | Datatype | Description |
|---|---|---|
id | string | Unique ID for the app instance |
_embedded | object | Embedded resources related to the app using the JSON Hypertext Application Language specification. If the expand=user/{userId} query parameter is specified, then the assigned Application User is embedded. |
_links | object | Discoverable resources related to the app |
accessibility | object | Specifies access settings for the app |
created | string (date-time) | Timestamp when the application object was created |
expressConfiguration | object | <div class="x-lifecycle-container"><x-lifecycle class="oie"></x-lifecycle></div> Indicates which Express Configuration capabilities the app supports and has enabled |
features | array | Enabled app features > Note: See Application Features for app provisioning features. |
label | string | User-defined display name for app |
lastUpdated | string (date-time) | Timestamp when the application object was last updated |
licensing | object | Licenses for the app |
orn | string | The Okta resource name (ORN) for the current app instance |
profile | object | Contains any valid JSON schema for specifying properties that can be referenced from a request (only available to OAuth 2.0 client apps). For example, add an app manager contact email address or define an allowlist of groups that you can then reference using the Okta Expression Language getFilteredGroups function. > Notes: > * profile isn't encrypted, so don't store sensitive data in it. > * profile doesn't limit the level of nesting in the JSON schema you created, but there is a practical size limit. Okta recommends a JSON schema size of 1 MB or less for best performance. |
signOnMode | string | Authentication mode for the app | signOnMode | Description | | ---------- | ----------- | | AUTO_LOGIN | Secure Web Authentication (SWA) | | BASIC_AUTH | HTTP Basic Authentication with Okta Browser Plugin | | BOOKMARK | Just a bookmark (no-authentication) | | BROWSER_PLUGIN | Secure Web Authentication (SWA) with Okta Browser Plugin | | OPENID_CONNECT | Federated Authentication with OpenID Connect (OIDC) | | SAML_1_1 | Federated Authentication with SAML 1.1 WebSSO (not supported for custom apps) | | SAML_2_0 | Federated Authentication with SAML 2.0 WebSSO | | SECURE_PASSWORD_STORE | Secure Web Authentication (SWA) with POST (plugin not required) | | WS_FEDERATION | Federated Authentication with WS-Federation Passive Requestor Profile | Select the signOnMode for your custom app: (AUTO_LOGIN, BASIC_AUTH, BOOKMARK, BROWSER_PLUGIN, OPENID_CONNECT, SAML_1_1, SAML_2_0, SECURE_PASSWORD_STORE, WS_FEDERATION) |
status | string | App instance status (ACTIVE, DELETED, INACTIVE) |
universalLogout | object | <div class="x-lifecycle-container"><x-lifecycle class="oie"></x-lifecycle></div> Universal Logout properties for the app. These properties are only returned and can't be updated. (example: ACTIVE) |
visibility | object | Specifies visibility settings for the app |
Methods​
The following methods are available for this resource:
| Name | Accessible by | Required Params | Optional Params | Description |
|---|---|---|---|---|
get_application | select | appId, subdomain | expand | Retrieves an application from your Okta organization by id |
list_applications | select | subdomain | q, after, useOptimization, alwaysIncludeVpnSettings, limit, filter, expand, includeNonDeleted | Lists all apps in the org with pagination. A subset of apps can be returned that match a supported filter expression or query. The results are [paginated]https://developer.okta.com/docs/api#pagination according to the limit parameter. If there are multiple pages of results, the header contains a next link. Treat the link as an opaque value (follow it, don't parse it).> Note: To list all of a member's assigned app links, use the List all assigned app links endpoint in the User Resources API. |
create_application | insert | subdomain, signOnMode, label | activate, OktaAccessGateway-Agent | Creates an app instance in your Okta org. You can either create an OIN app instance or a custom app instance: * OIN app instances have prescribed name (key app definition) and signOnMode options. See the OIN schemas for the request body.* For custom app instances, select the signOnMode that pertains to your app and specify the required parameters in the request body. |
replace_application | replace | appId, subdomain, signOnMode, label | Replaces properties for an application > Notes: > * All required properties must be specified in the request body > * You can't modify system-assigned properties, such as id, name, status, created, and lastUpdated. The values for these properties in the PUT request body are ignored. | |
delete_application | delete | appId, subdomain | Deletes an inactive application | |
activate_application | exec | appId, subdomain | Activates an inactive application | |
deactivate_application | exec | appId, subdomain | Deactivates an active application > Note: Deactivating an app triggers a full reconciliation of all users assigned to the app by groups. This reconcile process removes the app assignment for the deactivated app, and might also correct assignments that were supposed to be removed but failed previously. | |
upload_application_logo | exec | appId, subdomain, file | Uploads a logo for the app instance. If the app already has a logo, this operation replaces the previous logo. The logo is visible in the Admin Console as an icon for your app instance. If you have one appLink object configured, this logo also appears in the End-User Dashboard as an icon for your app.> Note: If you have multiple appLink objects, use the Admin Console to add logos for each app link.> You can't use the API to add logos for multiple app links. | |
assign_application_policy | exec | appId, policyId, subdomain | Assigns an app to an app sign-in policy, identified by policyId.If the app was previously assigned to another policy, this operation replaces that assignment with the updated policy identified by policyId.> Note: When you merge duplicate app sign-in policies, the policy and mapping CRUD operations may be unavailable during the consolidation. When the consolidation is complete, you receive an email with merged results. | |
preview_samlmetadata_for_application | exec | kid, appId, subdomain | Previews the SSO SAML metadata for an application |
Parameters​
Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
| Name | Datatype | Description |
|---|---|---|
appId | string | Application ID |
kid | string | |
policyId | string | id of the policy |
subdomain | string | (default: my-org) |
OktaAccessGateway-Agent | string | |
activate | string | Executes activation lifecycle operation when creating the app |
after | string | Specifies the [pagination]https://developer.okta.com/docs/api#pagination cursor for the next page of results. Treat this as an opaque value obtained through the next link relationship. |
alwaysIncludeVpnSettings | string | Specifies whether to include the VPN configuration for existing notifications in the result, regardless of whether VPN notifications are configured |
expand | string | An optional parameter used for link expansion to embed more resources in the response. Only supports expand=user/{userId} and must be used with the user.id eq "{userId}" filter query for the same user. Returns the assigned application user in the _embedded property. |
filter | string | Filters apps with a supported expression for a subset of properties. Filtering supports the following limited number of properties: id, status, credentials.signing.kid, settings.slo.enabled, or name. See Filter. |
includeNonDeleted | string | Specifies whether to include non-active, but not deleted apps in the results |
limit | integer (int32) | Specifies the number of results per page |
q | string | Searches for apps with name or label properties that starts with the q value using the startsWith operation |
useOptimization | string | Specifies whether to use query optimization. If you specify useOptimization=true in the request query, the response contains a subset of app instance properties. |
SELECT examples​
- get_application
- list_applications
Retrieves an application from your Okta organization by id
SELECT
id,
_embedded,
_links,
accessibility,
created,
expressConfiguration,
features,
label,
lastUpdated,
licensing,
orn,
profile,
signOnMode,
status,
universalLogout,
visibility
FROM okta.apps.applications
WHERE appId = '{{ appId }}' -- required
AND subdomain = '{{ subdomain }}' -- required
AND expand = '{{ expand }}'
;
Lists all apps in the org with pagination. A subset of apps can be returned that match a supported filter expression or query. The results are [paginated]https://developer.okta.com/docs/api#pagination according to the limit parameter. If there are multiple pages of results, the header contains a next link. Treat the link as an opaque value (follow it, don't parse it).
> Note: To list all of a member's assigned app links, use the List all assigned app links endpoint in the User Resources API.
SELECT
id,
_embedded,
_links,
accessibility,
created,
expressConfiguration,
features,
label,
lastUpdated,
licensing,
orn,
profile,
signOnMode,
status,
universalLogout,
visibility
FROM okta.apps.applications
WHERE subdomain = '{{ subdomain }}' -- required
AND q = '{{ q }}'
AND after = '{{ after }}'
AND useOptimization = '{{ useOptimization }}'
AND alwaysIncludeVpnSettings = '{{ alwaysIncludeVpnSettings }}'
AND limit = '{{ limit }}'
AND filter = '{{ filter }}'
AND expand = '{{ expand }}'
AND includeNonDeleted = '{{ includeNonDeleted }}'
;
INSERT examples​
- create_application
- Manifest
Creates an app instance in your Okta org.
You can either create an OIN app instance or a custom app instance:
* OIN app instances have prescribed name (key app definition) and signOnMode options. See the OIN schemas for the request body.
* For custom app instances, select the signOnMode that pertains to your app and specify the required parameters in the request body.
INSERT INTO okta.apps.applications (
accessibility,
label,
licensing,
profile,
signOnMode,
visibility,
subdomain,
activate,
OktaAccessGateway-Agent
)
SELECT
'{{ accessibility }}',
'{{ label }}' /* required */,
'{{ licensing }}',
'{{ profile }}',
'{{ signOnMode }}' /* required */,
'{{ visibility }}',
'{{ subdomain }}',
'{{ activate }}',
'{{ OktaAccessGateway-Agent }}'
RETURNING
id,
_embedded,
_links,
accessibility,
created,
expressConfiguration,
features,
label,
lastUpdated,
licensing,
orn,
profile,
signOnMode,
status,
universalLogout,
visibility
;
# Description fields are for documentation purposes
- name: applications
props:
- name: subdomain
value: "{{ subdomain }}"
description: Required parameter for the applications resource.
- name: accessibility
description: |
Specifies access settings for the app
value:
errorRedirectUrl: "{{ errorRedirectUrl }}"
loginRedirectUrl: "{{ loginRedirectUrl }}"
selfService: {{ selfService }}
- name: label
value: "{{ label }}"
description: |
User-defined display name for app
- name: licensing
description: |
Licenses for the app
value:
seatCount: {{ seatCount }}
- name: profile
value: "{{ profile }}"
description: |
Contains any valid JSON schema for specifying properties that can be referenced from a request (only available to OAuth 2.0 client apps).
For example, add an app manager contact email address or define an allowlist of groups that you can then reference using the Okta Expression Language `getFilteredGroups` function.
> **Notes:**
> * `profile` isn't encrypted, so don't store sensitive data in it.
> * `profile` doesn't limit the level of nesting in the JSON schema you created, but there is a practical size limit. Okta recommends a JSON schema size of 1 MB or less for best performance.
- name: signOnMode
value: "{{ signOnMode }}"
description: |
Authentication mode for the app
| signOnMode | Description |
| ---------- | ----------- |
| AUTO_LOGIN | Secure Web Authentication (SWA) |
| BASIC_AUTH | HTTP Basic Authentication with Okta Browser Plugin |
| BOOKMARK | Just a bookmark (no-authentication) |
| BROWSER_PLUGIN | Secure Web Authentication (SWA) with Okta Browser Plugin |
| OPENID_CONNECT | Federated Authentication with OpenID Connect (OIDC) |
| SAML_1_1 | Federated Authentication with SAML 1.1 WebSSO (not supported for custom apps) |
| SAML_2_0 | Federated Authentication with SAML 2.0 WebSSO |
| SECURE_PASSWORD_STORE | Secure Web Authentication (SWA) with POST (plugin not required) |
| WS_FEDERATION | Federated Authentication with WS-Federation Passive Requestor Profile |
Select the `signOnMode` for your custom app:
valid_values: ['AUTO_LOGIN', 'BASIC_AUTH', 'BOOKMARK', 'BROWSER_PLUGIN', 'OPENID_CONNECT', 'SAML_1_1', 'SAML_2_0', 'SECURE_PASSWORD_STORE', 'WS_FEDERATION']
- name: visibility
description: |
Specifies visibility settings for the app
value:
appLinks: "{{ appLinks }}"
autoLaunch: {{ autoLaunch }}
autoSubmitToolbar: {{ autoSubmitToolbar }}
hide:
iOS: {{ iOS }}
web: {{ web }}
- name: activate
value: "{{ activate }}"
description: Executes activation lifecycle operation when creating the app
description: Executes activation lifecycle operation when creating the app
- name: OktaAccessGateway-Agent
value: "{{ OktaAccessGateway-Agent }}"
REPLACE examples​
- replace_application
Replaces properties for an application
> Notes:
> * All required properties must be specified in the request body
> * You can't modify system-assigned properties, such as id, name, status, created, and lastUpdated. The values for these properties in the PUT request body are ignored.
REPLACE okta.apps.applications
SET
accessibility = '{{ accessibility }}',
label = '{{ label }}',
licensing = '{{ licensing }}',
profile = '{{ profile }}',
signOnMode = '{{ signOnMode }}',
visibility = '{{ visibility }}'
WHERE
appId = '{{ appId }}' --required
AND subdomain = '{{ subdomain }}' --required
AND signOnMode = '{{ signOnMode }}' --required
AND label = '{{ label }}' --required
RETURNING
id,
_embedded,
_links,
accessibility,
created,
expressConfiguration,
features,
label,
lastUpdated,
licensing,
orn,
profile,
signOnMode,
status,
universalLogout,
visibility;
DELETE examples​
- delete_application
Deletes an inactive application
DELETE FROM okta.apps.applications
WHERE appId = '{{ appId }}' --required
AND subdomain = '{{ subdomain }}' --required
;
Lifecycle Methods​
- activate_application
- deactivate_application
- upload_application_logo
- assign_application_policy
- preview_samlmetadata_for_application
Activates an inactive application
EXEC okta.apps.applications.activate_application
@appId='{{ appId }}' --required,
@subdomain='{{ subdomain }}' --required
;
Deactivates an active application
> Note: Deactivating an app triggers a full reconciliation of all users assigned to the app by groups. This reconcile process removes the app assignment for the deactivated app, and might also correct assignments that were supposed to be removed but failed previously.
EXEC okta.apps.applications.deactivate_application
@appId='{{ appId }}' --required,
@subdomain='{{ subdomain }}' --required
;
Uploads a logo for the app instance.
If the app already has a logo, this operation replaces the previous logo.
The logo is visible in the Admin Console as an icon for your app instance.
If you have one appLink object configured, this logo also appears in the End-User Dashboard as an icon for your app.
> Note: If you have multiple appLink objects, use the Admin Console to add logos for each app link.
> You can't use the API to add logos for multiple app links.
EXEC okta.apps.applications.upload_application_logo
@appId='{{ appId }}' --required,
@subdomain='{{ subdomain }}' --required
@@json=
'{
"file": "{{ file }}"
}'
;
Assigns an app to an app sign-in policy, identified by policyId.
If the app was previously assigned to another policy, this operation replaces that assignment with the updated policy identified by policyId.
> Note: When you merge duplicate app sign-in policies,
the policy and mapping CRUD operations may be unavailable during the consolidation. When the consolidation is complete, you receive an email with merged results.
EXEC okta.apps.applications.assign_application_policy
@appId='{{ appId }}' --required,
@policyId='{{ policyId }}' --required,
@subdomain='{{ subdomain }}' --required
;
Previews the SSO SAML metadata for an application
EXEC okta.apps.applications.preview_samlmetadata_for_application
@kid='{{ kid }}' --required,
@appId='{{ appId }}' --required,
@subdomain='{{ subdomain }}' --required
;