QlikElixir.REST.Apps (qlik_elixir v0.3.5)

View Source

Qlik Cloud Apps REST API client.

Provides functions to manage Qlik Sense applications including listing, creating, updating, copying, publishing, and exporting apps.

API Reference

Qlik Apps API Documentation

Features

  • CRUD Operations: List, get, create, update, delete apps
  • Publishing: Publish apps to managed spaces
  • Export/Import: Export apps as .qvf files and import from binary
  • Scripts: Get and validate load scripts
  • Media: List media files and get thumbnails
  • Metadata: Get app lineage and metadata

Examples

# List apps
{:ok, %{"data" => apps}} = QlikElixir.REST.Apps.list(limit: 50)

# Get app details
{:ok, app} = QlikElixir.REST.Apps.get("app-id")

# Publish to managed space
{:ok, published} = QlikElixir.REST.Apps.publish("app-id", "space-id")

# Export as .qvf
{:ok, binary} = QlikElixir.REST.Apps.export("app-id")

Summary

Functions

Copies an app.

Creates a new app.

Deletes an app.

Exports an app as a .qvf binary file.

Gets details for a specific app.

Gets data lineage information for an app.

Gets app metadata including reload time and data model info.

Gets the load script history of an app.

Gets the thumbnail image of an app.

Imports an app from a .qvf binary file.

Lists apps accessible to the current user.

Lists media files in an app.

Publishes an app to a managed space.

Updates an existing app.

Validates a Qlik load script without executing it.

Functions

copy(app_id, opts \\ [])

@spec copy(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Copies an app.

Options

  • :name - Name for the copied app
  • :space_id - Target space for the copy
  • :config - Custom configuration

Examples

iex> QlikElixir.REST.Apps.copy("app-123", name: "Copy of App")
{:ok, %{"id" => "new-id", "name" => "Copy of App"}}

create(params, opts \\ [])

@spec create(
  map(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Creates a new app.

Parameters

  • params - Map with app attributes:
    • :name - App name (required)
    • :description - App description
    • :space_id - Space to create the app in

Examples

iex> QlikElixir.REST.Apps.create(%{name: "New App"})
{:ok, %{"id" => "new-id", "name" => "New App"}}

delete(app_id, opts \\ [])

@spec delete(
  String.t(),
  keyword()
) :: :ok | {:error, QlikElixir.Error.t()}

Deletes an app.

Examples

iex> QlikElixir.REST.Apps.delete("app-123")
:ok

export(app_id, opts \\ [])

@spec export(
  String.t(),
  keyword()
) :: {:ok, binary()} | {:error, QlikElixir.Error.t()}

Exports an app as a .qvf binary file.

Examples

iex> QlikElixir.REST.Apps.export("app-123")
{:ok, <<binary>>}

get(app_id, opts \\ [])

@spec get(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Gets details for a specific app.

Examples

iex> QlikElixir.REST.Apps.get("app-123")
{:ok, %{"id" => "app-123", "name" => "My App"}}

get_lineage(app_id, opts \\ [])

@spec get_lineage(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Gets data lineage information for an app.

Examples

iex> QlikElixir.REST.Apps.get_lineage("app-123")
{:ok, %{"data" => [...]}}

get_metadata(app_id, opts \\ [])

@spec get_metadata(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Gets app metadata including reload time and data model info.

Examples

iex> QlikElixir.REST.Apps.get_metadata("app-123")
{:ok, %{"reload_time" => "...", "static_byte_size" => 1024000}}

get_script(app_id, opts \\ [])

@spec get_script(
  String.t(),
  keyword()
) :: {:ok, list()} | {:error, QlikElixir.Error.t()}

Gets the load script history of an app.

Returns a list of saved script versions, sorted with latest first.

Examples

iex> QlikElixir.REST.Apps.get_script("app-123")
{:ok, [%{"id" => "v1", "script" => "LOAD * FROM ..."}]}

get_thumbnail(app_id, opts \\ [])

@spec get_thumbnail(
  String.t(),
  keyword()
) :: {:ok, binary()} | {:error, QlikElixir.Error.t()}

Gets the thumbnail image of an app.

Examples

iex> QlikElixir.REST.Apps.get_thumbnail("app-123")
{:ok, <<binary>>}

import_app(binary, opts \\ [])

@spec import_app(
  binary(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Imports an app from a .qvf binary file.

Options

  • :name - Custom name for the imported app
  • :space_id - Target space for the imported app
  • :config - Custom configuration

Examples

iex> QlikElixir.REST.Apps.import_app(binary_data, name: "My App")
{:ok, %{"id" => "new-app-id"}}

list(opts \\ [])

@spec list(keyword()) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Lists apps accessible to the current user.

Options

  • :limit - Maximum number of apps to return (default: 100)
  • :next - Cursor for pagination
  • :space_id - Filter by space ID
  • :name - Filter by app name
  • :config - Custom configuration

Examples

iex> QlikElixir.REST.Apps.list(limit: 10)
{:ok, %{"data" => [...]}}

list_media(app_id, opts \\ [])

@spec list_media(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Lists media files in an app.

Options

  • :path - Optional path within the media folder
  • :config - Custom configuration

Examples

iex> QlikElixir.REST.Apps.list_media("app-123")
{:ok, %{"data" => [...]}}

iex> QlikElixir.REST.Apps.list_media("app-123", path: "images")
{:ok, %{"data" => [...]}}

publish(app_id, space_id, opts \\ [])

@spec publish(String.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, QlikElixir.Error.t()}

Publishes an app to a managed space.

Examples

iex> QlikElixir.REST.Apps.publish("app-123", "space-456")
{:ok, %{"id" => "published-app-id"}}

update(app_id, params, opts \\ [])

@spec update(String.t(), map(), keyword()) ::
  {:ok, map()} | {:error, QlikElixir.Error.t()}

Updates an existing app.

Examples

iex> QlikElixir.REST.Apps.update("app-123", %{name: "Renamed"})
{:ok, %{"id" => "app-123", "name" => "Renamed"}}

validate_script(script, opts \\ [])

@spec validate_script(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, QlikElixir.Error.t()}

Validates a Qlik load script without executing it.

Parameters

  • script - The load script to validate

Examples

iex> QlikElixir.REST.Apps.validate_script("LOAD * FROM data.csv;")
{:ok, %{"valid" => true}}