3.5.8 アプリケーション・ギャラリの構成

アプリケーション・ギャラリのインストール・ソースとして使用される場所を構成します。

参照:

Oracle APEXアプリケーション・ビルダー・ユーザーズ・ガイドギャラリの使用

3.5.8.1 アプリケーション・ギャラリについて

アプリケーション・ギャラリはワークスペースのホーム・ページからアクセスでき、サンプル・アプリケーション、スタータ・アプリケーションおよびカスタム・アプリケーションへのリンクが含まれています。

トップ・メニューからアプリケーション・ギャラリにアクセスするか、スポットライト検索で「ギャラリ」と入力してアクセスします。ギャラリ内のアプリケーションはカードとしてリストされ、APEXから直接インストールできます。

デフォルトでは、サンプル・アプリケーションとスタータ・アプリケーションはGitHubでホストされています。「インストール」ボタンをクリックすると、APEXによりバックグラウンドでGitHubからZIPファイルがフェッチされ、モーダル・ダイアログが開いて次のように表示されます。
  • アプリケーション・アイコン、タイトルおよび説明
  • 拡張設定
    • アプリケーションID - 自動生成(デフォルト)または手動入力が可能
    • アプリケーションおよびサポートされているDBオブジェクトの解析スキーマ

インスタンス管理者はデフォルトのインストール・ソースを編集して、サンプル・アプリケーションとスタータ・アプリケーションをローカルでホストできるように設定できます。また、インスタンスのすべてのワークスペースでカスタム・アプリケーションを使用できるようにも設定できます。

3.5.8.2 バックグラウンド・インストールの無効化

バックグラウンドでのアプリケーションのインストールをアプリケーション・ギャラリでサポートするかどうかを制御します。

「バックグラウンド・インストールの有効化」設定はデフォルトで有効になっています。なんらかの理由でAPEXインスタンスに対してデータベース・ジョブが無効になっている場合は、ユーザーが引き続きアプリケーション・ギャラリでアプリケーションをインストールできるように、この設定を無効にすることを検討してください。

アプリケーション・ギャラリでバックグラウンド・インストールを無効にするには、次のようにします。

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「インスタンスの設定」をクリックします。
  4. 「アプリケーション・ギャラリ」を見つけます。
  5. 「バックグラウンド・インストールの有効化」設定をオフにします。
  6. 「変更の適用」をクリックします。

3.5.8.3 特別なユースケース

インスタンス管理者は、サンプル・アプリケーションとスタータ・アプリケーションに使用されるインストール・ソースを変更して、カスタム・アプリケーションをギャラリに追加できます。

3.5.8.3.1 拡張構成

ギャラリのデフォルトのインストール・ソースは、Oracle APEX GitHubリポジトリです。manifest.jsonファイルを編集してインスタンス設定を更新すれば、インストール・ソースを変更したり、新しいアプリケーションをギャラリに追加できます。

開発者は、サンプル・アプリケーション、スタータ・アプリケーションおよびカスタム・アプリケーションをギャラリから直接インストールできます。アプリケーションの場所は、manifest.jsonファイルで制御されます。

インストール・ソースの変更が必要になる可能性がある次の2つのシナリオがあります。
  • ネットワークの制限により、クライアント・ブラウザがapex.oracle.comまたはraw.githubusercontent.comにアクセスできない
  • ギャラリにカスタム・アプリケーションを追加する必要がある

インストール・ソースを変更するには、manifest.jsonファイルを変更する必要があります。サンプル・アプリケーションとスタータ・アプリケーションの場所は、このファイルで指定します。manifest.jsonファイルを追加すれば、カスタム・アプリケーションの場所を指定できます。

インストール・ソースを編集するには:
  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「インスタンスの設定」をクリックします。
  4. アプリケーション・ギャラリを見つけます。
    • manifest.jsonファイルの場所がテキスト・ボックスに表示されます。
  5. manifest.jsonファイルを変更します。
    1. 現在の場所からファイルをダウンロードします。
    2. ファイルを編集して、インストール・ソースへのリンクを変更します。
    3. HTTP(s)を介してブラウザからアクセスできるWebサーバーまたはWebリソースに、それをアップロードします。
  6. 「アプリケーション・ギャラリ」「ファイルURL」で、manifest.jsonのリンクを変更します。
    • サンプル・アプリケーションおよびスタータ・アプリケーションのインストール・ソースをまだ変更していない場合は、テキスト・ボックスに改行を追加して、カスタム・アプリケーションの場所を指定したmanifest.jsonファイルへのリンクを追加します。
    • サンプル・アプリケーションおよびスタータ・アプリケーションのインストール・ソースをすでに変更している場合は、既存のmanifest.jsonファイルへのリンクを削除して、新しい場所を指定したmanifest.jsonファイルへのリンクを追加します。
  7. 「変更の適用」を選択します。

インストール・ソースが変更されました。

3.5.8.3.2 APEXサンプル・アプリケーションとスタータ・アプリケーションの内部ホスト

APEXサンプル・アプリケーションとスタータ・アプリケーションを内部的にホストする方法について学習します。

サンプル・アプリケーションとスタータ・アプリケーションをホストするデフォルトの場所はGitHubです。ネットワークの制限によりお客様がこの場所にアクセスできない場合は、アプリケーションをダウンロードし、内部的にホストして、インストール・ソースを変更すればアクセス可能にできます。

APEXサンプル・アプリケーションとスタータ・アプリケーションを内部的にホストするには:

  1. https://github.com/oracle/apexに移動します。
  2. ブランチをクリックして、現在インストールされているAPEXバージョンにブランチを変更します。
    たとえば、「22.1」から「21.2」にします。
  3. 「コード」ボタンをクリックし、「ZIPのダウンロード」を選択します。
  4. ファイルを解凍します。
  5. 解凍したapexフォルダとそのコンテンツを、HTTP(S)を介して到達できるWebサーバーにデプロイします。
  6. 「インスタンスの設定」「アプリケーション・ギャラリ」「ファイルURL」で、既存のリンクを削除し、デプロイ済のmanifest.jsonファイルへのリンクを追加します。
  7. 「変更の適用」をクリックします。
  8. manifest.jsonファイルを編集し、スタータ・アプリケーションとサンプル・アプリケーションのリンクを新しい場所に変更します。
  9. 「ギャラリ」ページにアクセスし、エラーがないことを確認します。

    ヒント:

    オリジン間リソース共有(CORS)のために、Access-Control-Allow-Origin HTTPヘッダーを含めて、特定のホスト/ドメインから特定のリソースのみのロードが許可されていることをブラウザに通知するようにWebサーバーを構成する必要があります。
これで、スタータ・アプリケーションとサンプル・アプリケーションが内部的にホストされるようになります。

3.5.8.3.3 ギャラリへのカスタム・アプリケーションの追加

ギャラリにカスタム・アプリケーションを含める方法について学習します。

ギャラリの「カスタム・アプリケーション」セクションには、インスタンス管理者が自分のアプリケーションを含めることができます。アプリケーションをローカルでアップロードし、カスタム・アプリケーションの場所を指すインストール・ソース・ファイルを追加します。
開始する前に、カスタム・アプリケーションに含めるアプリケーションをzipファイルとしてエクスポートします。

ギャラリにカスタム・アプリケーションを含めるには:

  1. エクスポートしたアプリケーションを、ブラウザまたはHTTP(S)経由でアクセスできるWebサーバーまたはリソースでホストします。
  2. 各カスタム・アプリケーションの情報を含むmanifest.jsonファイルを作成します。
    manifest.jsonの例を参照してください。
  3. manifest.jsonファイルを、ブラウザまたはHTTP(S)経由でアクセスできるWebサーバーまたはリソースでホストします。
  4. 「インスタンスの設定」「アプリケーション・ギャラリ」「ファイルURL」で、新しいリンクを追加して、デプロイ済のmanifest.jsonファイルへのリンクを追加します。
    単独の行に各URLを指定する必要があります。
  5. 「変更の適用」をクリックします。
  6. 「ギャラリ」ページにアクセスして、アプリケーションが表示され、エラーがないことを確認します。

    ヒント:

    オリジン間リソース共有(CORS)のために、Access-Control-Allow-Origin HTTPヘッダーを含めて、特定のホスト/ドメインから特定のリソースのみのロードが許可されていることをブラウザに通知するようにWebサーバーを構成する必要があります。
カスタム・アプリケーションが「ギャラリ」に表示されます。

3.5.8.3.4 manifest.jsonの例

ギャラリに表示するアプリケーションごとに必要なmanifest.jsonの情報の例を見ます。

この例では、ギャラリ内のアプリケーションのインストール・ソースを変更するときにmanifest.jsonファイルに含める必要がある情報を示します。

インストール・ソースを変更したアプリケーションごとに、次のコード・ブロックが必要です。「インスタンスの設定」「アプリケーション・ギャラリ」「ファイルURL」属性に、複数のmanifest.jsonファイルを含めることができます。たとえば、サンプル・アプリケーションとスタータ・アプリケーションがGitHubでホストされたままの場合、カスタム・アプリケーションの場所のみを示す新しいmanifest.jsonファイルを「ファイルURL」属性に追加できます。

{
    "sampleApps": [
        {
            "internalName": "MY_SAMPLE_APP",
            "name": "Sample App",
            "description": "This app is a sample app.",
            "author": "John Doe",
            "version": "1.0.0",
            "icon": "https://example.com/apex/apps/sample_app/app-icon.svg",
"url": "https://example.com/apex/apps/sample_app",
"source": "https://example.com/apex/apps/sample_app/sample_app.sql",
"zip": "https://example.com/apex/apps/sample_app/sample_app.zip"
        }
    ],
    "starterApps": [
        {
            "internalName": "MY_STARTER_APP",
            "name": "Starter App",
            "description": "This app is a starter app.",
            "author": "John Doe",
            "version": "1.0.0",
            "icon": "https://example.com/apex/apps/starter_app/app-icon.svg",
"url": "https://example.com/apex/apps/starter_app",
"source": "https://example.com/apex/apps/starter_app/starter_app.sql",
"zip": "https://example.com/apex/apps/starter_app/starter_app.zip"
        }
    ],
    "customApps": [
        {
            "internalName": "MY_CUSTOM_APP",
            "name": "Custom App",
            "description": "This app is a custom app.",
            "author": "John Doe",
            "version": "1.0.0",
            "icon": "https://example.com/apex/apps/custom_app/app-icon.svg",
"url": "https://example.com/apex/apps/custom_app",
"source": "https://example.com/apex/apps/custom_app/custom_app.sql",
"zip": "https://example.com/apex/apps/custom_app/custom_app.zip"
        }
    ]
}