Skip to content
shuffl

Searches the public product guides only. Nothing from a workspace is read, and questions are not saved.

Reference

App catalog API

7 operations. Generated from the OpenAPI document, so this page always matches the API.

OpenAPI documentErrors and rate limitsSDK and CLI recipes

On this page

apps.get

Read one app in the catalog: owners, approvers, levels and who has access

POST/api/v1/manage/apps/get

const result = await shuffl.apps.get({
"appId": "<appId>"
});
Request fields (1)
  • appId string required
Response object
  • approvers object required
    • groups object[] required
      • id string required
      • name string required
    • manager boolean required
    • people object[] required
      • id string required
      • name string required
  • canManage boolean required
  • description string required
  • expiryDays number required
  • granted number required
  • id string required
  • levels object[] required
    • description string required
    • groups object[] required
      • connectionId string required
      • externalId string required
      • name string required
    • id string required
    • name string required
  • logoUrl null | string required
  • name string required
  • owners object[] required
    • id string required
    • name string required
  • pending number required
  • policyLabel string required
  • requestPolicy "approval" | "closed" | "open" required
  • revision number required
  • source null | object required
    • provider string required
    • providerName string required
  • updatedAt string required
  • websiteUrl null | string required
  • yours null | object required
    • id string required
    • levelId null | string required
    • status "approved" | "declined" | "expired" | "failed" | "granted" | "granting" | "pending_approval" | "requested" | "revoked" required
    • statusLabel string required

apps.importSources

List the connected identity providers apps can be imported from

POST/api/v1/manage/apps/importSources

const result = await shuffl.apps.importSources();
Request fields (none)

This operation takes no input.

Response object[]
  • id string required
  • label string required
  • provider string required
  • providerName string required

apps.list

List the apps people can ask for, with owners, levels and your own request

POST/api/v1/manage/apps/list

const result = await shuffl.apps.list();
Request fields (none)

This operation takes no input.

Response object[]
  • approvers object required
    • groups object[] required
      • id string required
      • name string required
    • manager boolean required
    • people object[] required
      • id string required
      • name string required
  • canManage boolean required
  • description string required
  • expiryDays number required
  • granted number required
  • id string required
  • levels object[] required
    • description string required
    • groups object[] required
      • connectionId string required
      • externalId string required
      • name string required
    • id string required
    • name string required
  • logoUrl null | string required
  • name string required
  • owners object[] required
    • id string required
    • name string required
  • pending number required
  • policyLabel string required
  • requestPolicy "approval" | "closed" | "open" required
  • revision number required
  • source null | object required
    • provider string required
    • providerName string required
  • updatedAt string required
  • websiteUrl null | string required
  • yours null | object required
    • id string required
    • levelId null | string required
    • status "approved" | "declined" | "expired" | "failed" | "granted" | "granting" | "pending_approval" | "requested" | "revoked" required
    • statusLabel string required

apps.members

List who has access to an app through Shuffl

POST/api/v1/manage/apps/members

const result = await shuffl.apps.members({
"appId": "<appId>"
});
Request fields (1)
  • appId string required
Response object
  • count number required
  • members object[] required
    • app object required
      • id string required
      • logoUrl null | string required
      • name string required
    • approvers object[] required
      • id string required
      • name string required
    • canDecide boolean required
    • canGrant boolean required
    • canRevoke boolean required
    • createdAt string required
    • decidedAt null | string required
    • decidedBy null | object required
      • id string required
      • name string required
    • decisionNote null | string required
    • errorCode null | string required
    • expiresAt string required
    • grant null | object required
      • Option 1 object optional
        • kind "manual" required
      • Option 2 object optional
        • connectionId string required
        • groups object[] required
        • kind "group" required
        • provider string required
    • grantedAt null | string required
    • grantsAutomatically boolean required
    • id string required
    • level null | object required
      • id string required
      • name string required
    • note string required
    • person object required
      • id string required
      • name string required
    • revision number required
    • revokedAt null | string required
    • status "approved" | "declined" | "expired" | "failed" | "granted" | "granting" | "pending_approval" | "requested" | "revoked" required
    • statusLabel string required

apps.archive

Archive an app so nobody can ask for it; open requests expire

POST/api/v1/manage/apps/archive

  • Write
  • Permission apps.archive
  • Needs a requestKey
  • Needs confirm set to apps.archive
const result = await shuffl.apps.archive({
"appId": "<appId>",
"confirm": "apps.archive",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • appId string required
  • confirm "apps.archive" required
  • requestKey string required1 to 128 characters
Response object
  • receipt object required
    • completedAt string (date-time) | null required
    • createdAt string (date-time) required
    • id string (uuid) required
    • operation string required
    • requestKey string required
    • status "running" | "succeeded" | "failed" | "unknown" required
  • result object | null required
    • ok true required

apps.import

Import the apps a connected identity provider lists into the catalog

POST/api/v1/manage/apps/import

  • Write
  • Permission apps.import
  • Needs a requestKey
  • Needs confirm set to apps.import
const result = await shuffl.apps.import({
"connectionId": "<connectionId>",
"confirm": "apps.import",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • connectionId string required
  • confirm "apps.import" required
  • requestKey string required1 to 128 characters
Response object
  • receipt object required
    • completedAt string (date-time) | null required
    • createdAt string (date-time) required
    • id string (uuid) required
    • operation string required
    • requestKey string required
    • status "running" | "succeeded" | "failed" | "unknown" required
  • result object | null required
    • added number required
    • listed number required
    • provider string required
    • providerName string required
    • updated number required

apps.save

Add or change an app in the catalog: owners, approvers, levels and request policy

POST/api/v1/manage/apps/save

  • Write
  • Permission apps.save
  • Needs a requestKey
  • Needs confirm set to apps.save
const result = await shuffl.apps.save({
"name": "<name>",
"confirm": "apps.save",
"requestKey": "a-new-unique-key"
});
Request fields (13)
  • approvers object optional
    • groupIds string[] required
    • manager boolean required
    • personIds string[] required
  • description string optional
  • expectedRevision number optional
  • expiryDays number optional
  • id string optional
  • levels object[] optional
    • description string optional
    • id string optional
    • name string required
  • logoUrl string optional
  • name string required
  • ownerPersonIds string[] optional
  • requestPolicy "approval" | "closed" | "open" optional
  • websiteUrl string optional
  • confirm "apps.save" required
  • requestKey string required1 to 128 characters
Response object
  • receipt object required
    • completedAt string (date-time) | null required
    • createdAt string (date-time) required
    • id string (uuid) required
    • operation string required
    • requestKey string required
    • status "running" | "succeeded" | "failed" | "unknown" required
  • result object | null required
    • approvers object required
      • groups object[] required
        • id string required
        • name string required
      • manager boolean required
      • people object[] required
        • id string required
        • name string required
    • canManage boolean required
    • description string required
    • expiryDays number required
    • granted number required
    • id string required
    • levels object[] required
      • description string required
      • groups object[] required
        • connectionId string required
        • externalId string required
        • name string required
      • id string required
      • name string required
    • logoUrl null | string required
    • name string required
    • owners object[] required
      • id string required
      • name string required
    • pending number required
    • policyLabel string required
    • requestPolicy "approval" | "closed" | "open" required
    • revision number required
    • source null | object required
      • provider string required
      • providerName string required
    • updatedAt string required
    • websiteUrl null | string required
    • yours null | object required
      • id string required
      • levelId null | string required
      • status "approved" | "declined" | "expired" | "failed" | "granted" | "granting" | "pending_approval" | "requested" | "revoked" required
      • statusLabel string required