第7章 古いバージョンの RHMAP からの移行

7.1. v2 から v3 への移行の概要

7.1.1. アプリとプロジェクト

v2 Studio では、アプリはハイブリッドアプリ、Web アプリ、クラウドアプリ、および場合によってはネイティブ iOS または Android アプリすべてを表します。v3 Studio では、アプリはこれらのコンセプトの 1 つを表します。アプリはクラウドアプリまたはネイティブ iOS アプリのいずれかであり、両方ではありません。v3 Studio では、機能とプラットフォームを分けるためにさまざまなアプリの種類が提供されます (ただし、これらのアプリはプロジェクトでグループ化できます)。

7.1.2. 移行する理由

v2 から v3 の Studio に移行する最大の利点は、新しい複数の機能を利用できることです。プロジェクトワークフローにより、開発ライフサイクル全体でプロジェクト内の複数のアプリを簡単に管理できるようになります。v3 の各アプリは、ホストされた git リポジトリーによって支持されます。これらのアプリは、SSH キーをアップロードするだけで使用できます。

v2 Studio は引き続きサポートされますが、v2 Studio では新しいプラットフォームの機能は使用できません。

7.1.3. Studio での自動移行

v2 アプリを個別に v3 プロジェクトに移行するために、v2 Studio では自動移行機能が利用できます。この移行プロセスの詳細を知りたい場合、またはアプリを手動で移行する場合は、詳細なアプリ移行ガイドを参照してください。

Studio アプリ移行機能はドメイン内のすべてのアプリで利用可能です。ただし、アプリによっては移行が簡単でない場合があります。Studio は、検証チェックを実行して自動移行がアプリに適しているかどうかを判断しようとします。このチェックは非破壊的であり、アプリにはまったく変更が加えられません。この機能を実行して移行しないことを決定することができます。

図

アプリのサイズに応じて、検証チェックには数秒から最大 1 分かかります。検証チェック後に、移行を自動的に行えるかどうかを通知する視覚的なレポートが生成されます。このレポートには、アプリで検出されたことと移行で注意する必要がある潜在的な問題 (警告) に関する情報が示されます。作業を円滑に進めるために、移行前にすべての問題を解決する (または問題の解決を計画する) ことが重要です。

図

検証チェックが何らかの理由で失敗した場合は、エラーが表示されます。可能な場合は、移行のためにアプリを再び検証しようとする前にエラーを修正する必要があります。手動による移行が唯一の選択肢となることもあります。不確かな移行の問題またはサポートが必要な移行の問題は、https://access.redhat.com から報告できます。

図

検証チェックが成功した場合は、Migrate ボタンが表示されます。このボタンを押すと、移行が開始され、進捗のフィードバックがリアルタイムで提供されます。移行が成功すると、小さなレポートが作業途中で検出されたすべての潜在的な問題とともに表示されます。 強調表示された問題は、v3 Studio を最大に活用するのに重要である場合があるため、完全に理解することをお勧めします。

図

移行中に問題が発生した場合は、プラットフォームにより、すべての変更がロールバックされ、アプリが移行前の状態に復元されます。繰り返しますが、この移行ステージで発生したすべての問題は、https://access.redhat.com で報告できます。

図

7.1.4. fhc を使用した自動移行

複数のアプリを移行する場合は、移行をスクリプト化すると便利です。これは、fhc migrate コマンドを使用して行えます。以下に例を示します。

fhc migrate <appid>

migrate コマンドにより、最初に検証チェックが実行され、問題がない場合に、続行するか尋ねられます。

ドメイン内のすべてのアプリを自動的に移行する場合は、以下のスクリプトを土台として使用できます。

#!/usr/bin/env node
var fh = require('fh-fhc');
var async = require('async');

// Init fhc
fh.fhc.load(function (err) {
  if (err) return console.error(err);
  // Target my domain and login
  fh.target(['https://testing.feedhenry.me','testing@example.com','password'], function(err, ok) {
    if (err) return console.error(err);
    console.log('ok:', ok);
    // List all apps
    fh.apps([], function(err, apps) {
      if (err) return console.error(err);
      console.log('apps:', apps);
      // Iterate over apps, calling migrate for each
      async.mapSeries(apps.list, function(app, cb) {
        // Passing 'silent' here will bypass prompt after validation check if check is ok
        fh.migrate([app.id, 'silent'], function(err, data) {
          if (err) return cb(err);
          console.log('data:', data);
          return cb(null, data);
        });
      }, function(err, results) {
        if (err) return console.error(err);
        // all done
        console.log('results:', results);
      });
    });
  });
});

この例は、gist (package.json を含む) としても利用できます。

7.2. v2 から v3 への移行ガイド

7.2.1. v2 アプリとは

v2 アプリは v2 Studio でのみ確認できるアプリです。Web アプリとしてホストし、デバイスに対してビルドおよびデプロイして、実行されているサーバーサイドコンポーネントを Node.js (または従来の Rhino) 環境にデプロイできます。

これらすべての機能は、一意の ID である GUID (Globally Unique Identifier) を持つ単一のアプリに割り当てられます。単一のコードベースはプラットフォームに格納できます (Studio と API を介してのみアクセスできます)。また、git リポジトリー (パブリックまたはプライベート) に格納して、Studio からリンクすることもできます。上記の各機能を単一のコードベースからサポートすると、厳密なディレクトリー構造が強制されます。この構造は以下のとおりです。

  • /client には、以下のように 1 つまたは複数のフォルダー (パッケージ) が含まれます。

    • /default には、Web アプリまたは Cordova アプリの土台として機能するデフォルトの index.html ファイルが含まれます。
    • /<other> には、特定のプラットフォームで優先されるように設定できる他のファイルが含まれます (たとえば、iOS Cordova アプリをビルドするときに異なる index.html を使用)。
  • /cloud には以下のものが含まれます。

    • application.js の土台となるファイルを含む Node.js アプリ
    • または main.jsの土台となるファイルを含む Rhino アプリ
  • /shared には、以下のコードで利用できるファイルが含まれます。

    • 実行時のクラウドコード
    • 配信時またはビルド時のクライアントコード

すべての機能は単一のアプリ guid に割り当てられるため、このアプリにより表されるさまざまな Web アプリまたは Cordova アプリはクラウドコードに密接に結合されます。つまり、このアプリの実行中のクラウドコードとのみ対話します。

7.2.2. v3 アプリとは

v3 アプリは v3 Studio でのみ確認できるアプリです。すべての v3 アプリはプロジェクトの一部です。v3 アプリの機能はアプリの種類 (Cordova アプリ、クラウドアプリ、ネイティブ iOS など) によって異なります。一般的に v2 アプリの個別機能は v3 アプリタイプにマップされます。たとえば、v3 アプリタイプがクラウドアプリの場合は、Node.js コードをクラウド環境にデプロイできます。タイプが Cordova Light の場合は、Web コンテンツ (html、css、js) を使用してさまざまなプラットフォーム用のネイティブアプリバイナリーをビルドできます。各アプリタイプは特定の機能を考慮して設計されているため、特にチームで開発を容易に管理できます (懸念事項の切り分けが可能)。

注記

一般的に、v2 アプリは v2 Studio のみで確認できます (v3 Studio の v3 アプリ/プロジェクトと同様)。 自動的に移行された v2 アプリは両方の Studio で確認できますが、v3 でのみ変更できます (v2 Studio では migrated アプリとしてフラグ付けされます)。

v3 Studio では、確認するアプリタイプで利用できる機能のみが表示されます。たとえば、確認するアプリが Cordova Light アプリタイプである場合は、Build オプションが表示されますが、Deploy オプションは表示されません。(新しい) ネイティブ iOS アプリを確認する場合は、Build オプションが表示されますが、Config オプションと Push オプションは表示されません (これらは Cordova と類似したアプリであるため)。

各 v3 アプリには、独自の git リポジトリー (プラットフォームでホストされる) により支持された独自のコードベースがあります。つまり、厳密なディレクトリー構造はありません。たとえば、クラウドアプリの場合は、git リポジトリーのルートにファイル package.json と application.js があります。一般的に、ルートにコードを配置することが適切な場合、プラットフォームはビルド時またはデプロイ時にその場所でコードを探します。この唯一の例外は Cordova Light アプリです。このアプリでは、すべての Web コンテンツ (HTML、CSS、JS) を /www フォルダーに保持する Cordova の規則に従います。これにより、ビルドスクリプトと他の非本番稼働コンテンツをビルドされるアプリに含めずに保守することが簡単になります。

7.2.3. プロジェクトとは

v3 Studio では、プロジェクトはアプリの論理的なグループです。プロジェクトのクライアントアプリが (接続を介して) 同じプロジェクトのクラウドアプリまたはデプロイ済みアプリに API 呼び出しを行うよう設定できます。プラットフォームの一部の機能 (フォーム接続レポートなど) はプロジェクトに関連付けられます。また、プロジェクトにはサービスも関連付けられます。サービスは、サードパーティー製システムとの事前定義された統合です。プロジェクトにはコードベースと独自の特別な機能がないため、プロジェクトをビルドまたはデプロイすることはできません。

7.2.4. 新規プロジェクト

v3 Studio では、アプリは独自に存在することはできません。アプリはプロジェクトに属する必要があります。v2 アプリを v3 Studio に移行する場合は、ベアプロジェクトを選択することをお勧めします。これにより、アプリがない状態で新しいプロジェクトが作成されます。

警告

v3 Studio で新しいプロジェクトを作成して手動で v2 アプリを移行する場合、既存のアプリの一意の ID (guid) は v3 で異なります。新しいクライアントアプリを該当するアプリストアに公開する必要があります。これは、v2 Studio での自動移行プロセスの場合は該当しません。

7.2.5. クラウドの新しい v3 アプリ

7.2.5.1. クラウドアプリ

v2 アプリは、サーバーサイド Rhino または Node.js としてデプロイできます。この場合は、/cloud のコンテンツが取得され、環境にデプロイされます。v3 でこの機能を取得するには、新しいクラウドアプリを作成します。ただし、Rhino サーバーサイドコードは v3 Studio ではサポートされません。自動的に移行される Rhino コードは限定的にサポートされますが、新しい Rhino アプリは利用できません。

警告

Rhino サーバーサイドコードは v2 アプリから v3 Rhino アプリに自動的に移行できますが、サポートは制限されます。v3 Studio を最大限活用するには、Rhino コードを Node.js に移行することが推奨されます。

7.2.5.2. /cloud フォルダーの移行

クラウドアプリで、Studio エディターまたは git リポジトリーのローカルクローン (こちらの方が容易) を使用して、ルートフォルダーのすべての内容 (隠しファイルを除く) を削除します。/cloud の内容は、ルートフォルダーに直接ドロップできます。

7.2.5.3. /shared フォルダーの移行

/shared フォルダーが v2 アプリに存在する場合、その内容は / に直接ドロップできます。これは、v2 アプリの /shared フォルダーの動作に似ています。

7.2.5.4. (オプション) Node.js SDK の変更

ほとんどのレガシー v2 アプリでは、クラウドコードで fh-nodeapp または fh-webapp/fh-api node.js モジュールが使用されます。/cloud から移行されたコードは引き続きデプロイされ、機能しますが、新しい fh-mbaas-express ミドルウェアと fh-mbaas-api モジュールを使用することが推奨されます。これらを使用する方法の例はクラウドアプリテンプレートと v3 Studio で利用可能なさまざまなプロジェクトテンプレートで利用できます。fh-nodeapp または fh-webapp/fh-api から fh-mbaas-express への移行に関するガイドは、ここで参照できます。

7.2.6. クライアント用の新しい v3 アプリ

7.2.6.1. Cordova Light アプリ

v2 アプリはハイブリッドアプリ (Cordova) としてビルドできます。この場合は、/client/default からすべてのコンテンツが取得され、Cordova www フォルダーに配置され (自動的な html ラッピングと v2 パッケージのための追加の手順を実行)、ネイティブアプリバイナリーが生成されます。v3 でこの機能を取得するには、新しい Cordova Light アプリを作成します。

7.2.6.2. /client フォルダーの移行

/client/default フォルダーを取得し、/client 下の他のすべてのフォルダーを無視する場合、この部分の移行はそれほど難しくありません。Cordova Light アプリで、Studio エディターまたは git リポジトリーのローカルクローン (こちらの方が容易) を使用して、/www フォルダーのすべての内容 (存在する場合) を削除します。/client/default の内容は、/www フォルダーに直接ドロップできます。

7.2.6.3. /shared フォルダーの移行

/shared フォルダーが v2 アプリに存在する場合、その内容は /www に直接ドロップできます。これは、v2 アプリの /shared フォルダーの動作に似ています。

7.2.6.4. Javascript SDK インジェクション

v2 アプリでは、index.html の内容が html で自動的にラップされ、RHMAP javascript SDK と初期化 javascript が挿入されます。v2 index.html ファイルのテンプレートは以下のようになります。

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <!-- mobile meta tags go here -->
    <script>
      var fh_app_props = {}; // for example, guid, host
      var fh_destination_code = ''; // for example, ios, android, mobile, embed
    </script>
    <link href="legacy-styles.css" rel="stylesheet"/>
    <script src="legacy-feedhenry-sdk.js" type="text/javascript"></script>
    <script src="legacy-frameworks.js" type="text/javascript"></script>

  </head>
  <body style="margin:0px;padding:0px">
    <!-- index.html contents go here -->
  </body>
</html>

v3 アプリでは、index.html の html ラッピング、SDK、またはコードインジェクションがありません。つまり、Cordova Light アプリでは、index.html で、任意の doctype を定義したり、任意のメタタグを設定したり、任意のスタイルシートまたはスクリプトを好きな場所に配置したりすることができます。v3 アプリでは、index.html の内容はまったく変更されません。これは、index.html ファイルを v2 アプリから v3 アプリに移行するときに、一部の変更が必要になることを意味します。

最初に、index.html の内容は、必要な html 構文 (doctype、html タグ、body タグなど) を含むよう記述する必要があります。次に、Javascript SDK を含める必要があります。つまり、githubj から最新バージョンの feedhenry.js を取得します。このファイルは、/www フォルダーに追加された状態で以下のように index.html に含めることができます。

<script src="feedhenry.js"></script>

7.2.6.5. fhconfig.json

Javascript SDK はアプリの起動時に自動的に初期化されますが、初期化呼び出しを行う場所を認識している必要があります。これは、設定ファイル fhconfig.json を読み取ることにより実行されます。この内容はプロジェクトの Connections タブから取得できます。特定の接続に対して Configure オプションを使用すると、JSON オブジェクトが示されます。これらの内容は /www/fhconfig.json にコピーできます。以下に例を示します。

{
  "appid":"00000000000000000000000000000000",
  "appkey":"aaaaaaaabbbbbbbbccccccccddddddddeeeeeeee",
  "connectiontag":"0.0.1",
  "host":"https://feedhenry.example.com",
  "projectid":"11111111111111111111111111111111"
}

このファイルが所定の場所にある場合、アプリは起動時に初期化呼び出しを行います。初期化呼び出しが成功すると、ホスト情報が返され、アプリはすでにプロジェクトにあるクラウドアプリに対して $fh.cloud 呼び出しを行えるようになります。

7.2.6.6. (オプション) レガシー FeedHenry API

RHMAP SDK は FeedHenry v2 よりも大幅に小型化されています。最も大きな違いは $fh.acc、$fh.audio、$fh.ca などのすべての Cordova ラッパー関数が削除されていることです。アプリでこれらの機能が必要な場合は、2 つのオプションがあります。

これらのレガシー API は隔離され、別の js ファイル https://github.com/fheng/fh-js-api-v2 に移動されました。Cordova アプリをビルドする場合は、レガシープラグインを https://github.com/fheng/fh-cordova-plugins-api から除外できます。

これらのレガシー API により提供される機能の各プラグインも利用できます。外部ストレージや Webview などの機能は FeedHenry github ページ https://github.com/feedhenry?query=cordova から利用できます。

7.2.6.7. (オプション) v2 アプリクライアントパッケージの移行

v2 アプリでは、パッケージはディレクトリー継承の形を取ります。たとえば、特定の css ファイルを iOS ビルド用の別のバージョンで上書きすることが可能になります。この例では、使用するデフォルトの css ファイルは /client/default/style.css です。iOS 固有のファイルは /client/myiospackage/style.css です。iOS 用にビルドする場合は、/client/default 内のすべてのファイルを /client/myiospackage 内のファイルで上書きするようパッケージ設定を指定できます。

v3 アプリでは、パッケージを使用しなくなりました。類似の機能を得るには 2 つの推奨アプローチがあります。最初のアプローチは、以下の組み合わせです。

2 番目のアプローチは Cordova アプリにある merges フォルダー (Cordova Light アプリでは利用不可) を使用することです。merges フォルダーは v2 パッケージに似ています。Cordova の公式ドキュメントは、http://cordova.apache.org/docs/en/3.3.0/guide/cli/index.html#using-merges-to-customize-each-platformhttps://github.com/apache/cordova-cli/tree/3.3.0-0.1.0#merges で参照できます。

7.2.6.8. (オプション) v2 アプリの embed/mobile 移行

v2 では、embed 宛先を使用して、プラットフォームでクライアントコードを Web アプリとしてホストできます。mobile 宛先を使用すると、プラットフォームでクライアントコードをモバイル Web アプリとしてホストできます。mobileembed の主な違いは html ラッピングで追加されたメタタグと、アプリの分析/レポートのタグ付け方法です。

v3 Studio では、index.html を完全に制御しながら同じ機能を得るために基本的な Web アプリを作成することが推奨されます。 組み込みアプリの移行ガイドについては、ここをクリックしてください。

7.3. fh-nodeapp & fh-webapp/fh-api から fh-mbaas-api/fh-mbaas-express への移行

fh-nodeapp & fh-webapp/fh-api は非推奨になり、fh-mbaas-api/fh-mbaas-express に置き換えられました。fh-mbaas-apifh-mbaas-express には、fh-nodeapp および fh-webapp/fh-api にある既存のすべての機能と、データブラウザーおよびフォームのサポートなどの新しい追加機能が含まれます。

以下では、fh-nodeapp または fh-webapp/fh-api から fh-mbaas-apifh-mbaas-express に移行する手順について説明します。Hello World Cloud テンプレートは最小の fh-mbaas-api/fh-mbaas-express アプリケーションの優れた例であり、アプリを fh-mbaas-api/fh-mbaas-express に移行するときの参考対象として優れています。

7.3.1. package.json の変更

package.json を更新するには、以下の手順に従ってください。

  1. fh-nodeapp または fh-webapp/fh-api を削除し、The Hello World Package.js file にある最新バージョンの fh-mbaas-api に置き換えます。以下に例を示します。

    "fh-mbaas-api" : "~4.5.0"
  2. Express を明示的に含める必要もあります。

    "express": "~4.0.0",
    "body-parser": "~1.0.2",
    "cors": "~2.2.0"
  3. 最後に、npm install を実行します。

7.3.2. $fh を fh に置き換えるためにクラウドコードを変更

グローバルの $fh は使用されなくなりました。必要な場合は作成できますが、代わりに fh に置き換えることが推奨されます。

  1. lib/main.js で、var fh = require('fh-mbaas-api'); を追加します。
  2. $fh の箇所を fh に置き換えます。
  3. $fh を使用するすべてのファイルに対して作業を繰り返します。

7.3.3. application.js の変更

fh-mbaas-api/fh-mbaas-express の場合、application.js ファイルは大幅に異なります。既存の application.jsHello World テンプレートアプリの最新の application.js ファイルに置き換えることが推奨されます。

7.3.4. Grunt の使用

これはオプションですが、使用することを強く推奨します。新しい FeedHenry テンプレートは、ローカル開発とテスト向けのベストプラクティスの支援のために Grunt を頻繁に使用します。

アプリで Grunt を使用するには、Hello World Cloud テンプレートの該当する Grunt 部分をコピーすることをお勧めします。

  1. Gruntfile である https://github.com/feedhenry-templates/helloworld-cloud/blob/master/Gruntfile.js を独自のアプリのルートにコピーします。
  2. 'devDependencies' をこの package.json から独自の package.json である https://github.com/feedhenry-templates/helloworld-cloud/blob/master/package.json にコピーします。コピーが完了したら、npm install を実行します。

7.4. 組み込みアプリから基本的な Web アプリへの移行

7.4.1. 概要

FeedHenry v2 では、Embed 宛先を使用して、プラットフォームでクライアントコードを Web アプリとしてホストできました。これは既存のクライアントアプリの単純な HTML ベース Web ポータルを作成する場合に便利でした。

RHMAP Studio では、組み込みアプリが非推奨になり、基本的な Web アプリに置き換えられました。基本的な Web アプリは、アプリを組み込む以前の FeedHenry v2 オプションと同じ機能を提供します。また、ライフサイクル管理のために index.html 、アプリの実行方法と実行場所、および個別の Git リポジトリーを完全に制御することもできます。

アプリを RHMAP プロジェクトに移行した後で、組み込みアプリは引き続き実行されますが、既存の組み込みアプリを再デプロイすることはできなくなります。本書では、RHMAP プロジェクトで既存の組み込みアプリを新しい基本的な Web アプリに移行する手順について説明します。

7.4.2. 移行

移行を開始するために、既存の FeedHenry v2 アプリを RHMAP プロジェクトにすでに移行したことを前提とします。まだ移行していない場合は、ここにあるガイドを参照してください。

7.4.2.1. 移行されたハイブリッドアプリのクローン

  • 最初に、移行されたハイブリッドアプリの Git リポジトリーをローカルでクローンする必要があります。これを行うには、Apps, Cloud Apps & Services 画面で Cordova Light アプリのリポジトリー URL の隣りにある Copy ボタンを押します。ターミナルにおいてお好きなフォルダーで以下のコマンドを入力します。

    git clone __Cordova_Light_Git_URL__
  • これにより、Cordova アプリのソースがローカルでクローンされます。このフォルダーを後で使用するので (古い組み込みアプリのソースコードが含まれるため)、ターミナルを開いたままにし、App Studio に切り替えます。

7.4.2.2. 新しい基本的な Web アプリの作成

次に、使用する新しい基本的な Web アプリまたは移行される組み込みアプリを作成する必要があります。これを行うには、Apps, Cloud Apps & Services 画面で Apps 領域の + をクリックします。Add a new App Client 画面で Create New App を選択し、Blank Basic Web App テンプレート (Web アプリの新しい名前を入力) と Create new App を選択します。これにより、空の基本的な Web アプリが作成されます。

FeedHenry v2 では、組み込みアプリのソースコードはハイブリッドおよびクラウドコードと同じ場所に存在していました (client/default/ のコードがコピーおよびデプロイされていました)。組み込みパッケージを使用している場合は、ソースが client/ フォルダー下の別のフォルダーに存在することがあります。FeedHenry v2 アプリを移行した場合、これらのフォルダーは若干変更されています。www/ はソースフォルダーであり、以前に存在したすべてのパッケージフォルダーは legacy_packages/ フォルダーに現れます。

7.4.2.3. 新しい基本的な Web アプリへの組み込みアプリのコピー

  • 新しい基本的な Web アプリを作成したら、Details 画面が表示されます。新しい基本的な Web アプリのソースをクローンし、以前にクローンした移行済み Cordova Light アプリから既存の組み込みアプリのソースをコピーします。Git SSH Clone URL の隣りにある Copy ボタンを押し、このリポジトリーをローカルでクローンします。以下に例を示します。

    git clone git@yourdomain.feedhenry.me:yourdomain/your-new-basic-web-app.git
  • この時点で、新しい基本的な Web アプリと移行済み Cordova Light アプリの両方のローカルコピーが存在します。古い組み込みアプリのソースを新しい基本的な Web アプリにコピーします。
  • Basic Web App で、www/css/ フォルダーと index.html ファイルを削除できます。feedhenry.js (JS SDK) と fhconfig.json (JS SDK の設定ファイル) は保持します。
  • Cordova Light App で、古い組み込みアプリに使用したパッケージを特定する必要があります。通常は、古いアプリの内容である client/default フォルダーが使用されますが、client/your_embed_package などの組み込みアプリ用の別のパッケージを使用した可能性もあります。組み込みアプリのソースコードを含むフォルダーの内容を新しい Basic Web App にコピーします。
  • 古い組み込みアプリのファイルがコピーされたら、変更をプッシュします。Basic Web App で以下のようなコマンドを入力します。

    git commit -am "Copied embed app"
    git push origin master
  • 最後に、Basic Web AppDeploy 領域に移動し、デプロイします。基本的な Web アプリの新しい URL は Details 画面に表示されます。

7.5. ロールからチームへの移行

チームは、プラットフォームの機能領域へのアクセスを制御する新しい強力なシステムです。

本書では、ロールベースの制限と新しいパーミッションベースの制限を比較します。各ロールは、同等の制限を作成するのに必要なパーミッションと比較されます。

7.5.1. パーミッションの追加

ロールベースのパーミッションシステムでは、ロールは以下の 3 つのレベルのユーザーに割り当てられます。

  • このドメイン: ロールは、現在のホスト名のみによって表されるドメインに対してアクティブです。
  • すべてのドメイン: ロールは、顧客が所有するすべてのドメインに対してアクティブです。
  • すべての顧客: ロールは、現在のリセラーが管理するすべての顧客が所有するすべてのドメインに対してアクティブです。

7.5.2. アナリティクス (analytics)

  • プラットフォームのアナリティクスセクションにアクセスできる。
  • プロジェクトの使用率を監視できる。

チームに割り当てられる以下のパーミッションにより、アナリィティクスへの同等のアクセスが許可されます。

  • ドメイン

    • アナリティクス (表示)
    • プロジェクト (表示)
    • 接続 (アクセスなし)
    • クラウドリソース (アクセスなし)

7.5.3. フォームエディター (formseditor)

  • フォームやテーマを作成できる。
  • フォームプロジェクトを作成できる。
  • フォーム、テーマ、および自分のグループに関連付けられているプロジェクトを編集できる。
  • フォームとテーマを該当するグループのプロジェクトに関連付けることができる。

チームに割り当てられる以下のパーミッションにより、フォームへの同等のアクセスが許可されます。

  • ドメイン

    • プロジェクト (表示 & 編集)
    • Drag & Drop App (表示 & 編集)
  • フォーム

    • 送信 (アクセスなし)
注記

グループの概念は Drag & Drop App から削除され、Form ビジネスオブジェクトに置き換えられました。

7.5.4. フォーム管理者 (formsadmin)

  • フォームやテーマを作成できる。
  • フォームプロジェクトを作成できる。
  • グループを作成できる。
  • ユーザーをグループに割り当てることができる。
  • 特定のドメインで作成されたすべてのフォーム & テーマを表示、アクセス、管理できる。
  • ドメイン上の全プロジェクトからの提出を表示できる。
  • ドメイン上のプロジェクトからの提出を編集できる。

チームに割り当てられる以下のパーミッションにより、フォームへの同等のアクセスが許可されます。

  • ドメイン

    • プロジェクト (表示 & 編集)
    • Drag & Drop App (表示 & 編集)
注記

グループの概念は Drag & Drop App から削除され、Form ビジネスオブジェクトに置き換えられました。

7.5.5. 提出ビューワ (submissionsviewer)

  • グループ内のプロジェクトからの提出を見ることができる。

チームに割り当てられる以下のパーミッションにより、フォームへの同等のアクセスが許可されます。

  • プロジェクト (表示)

    • クラウドリソース (アクセスなし)
    • 接続 (アクセスなし)
    • アナリティクス (アクセスなし)
    • クライアントアプリ (アクセスなし)
    • クラウドアプリ (アクセスなし)
  • Drag & Drop App (表示)

    • テーマ (アクセスなし)

7.5.6. 提出エディター (submissionseditor)

  • グループ内のプロジェクトからの提出を見ることができる。
  • グループ内のプロジェクトからの提出を編集することができる。

チームに割り当てられる以下のパーミッションにより、フォームへの同等のアクセスが許可されます。

  • プロジェクト (表示)

    • クラウドリソース (アクセスなし)
    • 接続 (アクセスなし)
    • アナリティクス (アクセスなし)
    • クライアントアプリ (アクセスなし)
    • クラウドアプリ (アクセスなし)
  • Drag & Drop App (表示 & 編集)

    • フォーム (表示)
  • 送信 (表示 & 編集)

    • テーマ (アクセスなし)

7.5.7. 開発管理者 (devadmin)

  • すべてのタイプのプロジェクトを作成、管理できる。
  • 利用可能なプラットフォーム用にアプリバイナリーを構築できる。
  • プライベートキーや証明書などの開発リソースをアップロードできる。
  • デプロイメントターゲットの作成、編集、およびメンテナンスができる。
  • 特定ドメイン上のプロジェクト & アプリすべてを表示、それらにアクセスできる。
  • 特定ドメイン上のデプロイメントターゲットすべてを表示、編集できる。
  • サービス (表示)

    • ソースコード (アクセスなし)
    • アナリティクス (アクセスなし)
    • 環境変数 (アクセスなし)
    • データブラウザー (アクセスなし)
    • クラウドデプロイメント (アクセスなし)
    • 統計 (アクセスなし)
    • 通知 (アクセスなし)
    • ログ (アクセスなし)
    • エンドポイント (アクセスなし)
  • プロジェクト (表示 & 編集)
  • Drag & Drop App (表示)

    • フォーム (表示)
  • 送信 (アクセスなし)

7.5.8. 開発者 (dev)

  • すべてのタイプのプロジェクトを作成、管理できる。
  • 利用可能なプラットフォーム用にアプリバイナリーを構築できる。
  • プライベートキーや証明書などの開発リソースをアップロードできる。
  • デプロイメントターゲットの作成、編集、およびメンテナンスができる。
  • パブリックサービスをプロジェクトに追加できる。

チームに割り当てられる以下のパーミッションにより、同等のアクセスが許可されます。

  • サービス (表示)

    • ソースコード (アクセスなし)
    • アナリティクス (アクセスなし)
    • 環境変数 (アクセスなし)
    • データブラウザー (アクセスなし)
    • クラウドデプロイメント (アクセスなし)
    • 統計 (アクセスなし)
    • 通知 (アクセスなし)
    • ログ (アクセスなし)
    • エンドポイント (アクセスなし)
  • プロジェクト (表示 & 編集)
  • Drag & Drop App (表示)

    • フォーム (表示)
  • 送信 (アクセスなし)

7.5.9. サービス管理者 (serviceadmin)

  • mBaaS サービスのプロビジョニングができる。
  • mBaaS サービスの管理ができる。

チームに割り当てられる以下のパーミッションにより、同等のアクセスが許可されます。

  • ドメイン

    • サービス (表示 & 編集)

7.5.10. ドメイン管理者 (portaladmin)

  • 認証ポリシーを作成および編集できる。
  • ドメイン向けのアプリストアの更新ができる。
  • アプリストアのアプリを作成および管理できる。
  • アプリストアのグループを作成および管理できる。
  • アプリストアのデバイスを管理できる。
  • アプリストアのログを表示できる。
  • 管理者ページの「モバイルアプリの管理」セクションにアクセスできる。
  • ユーザーの追加と削除ができる。
  • ユーザーにロールを割り当てることができる。

チームに割り当てられる以下のパーミッションにより、同等のアクセスが許可されます。

  • ドメイン

    •  認証ポリシー (表示 & 編集)
    •  App Store (表示 & 編集)
    • 管理者 (表示 & 編集)

7.5.11. 顧客管理者 (customeradmin)

  • この顧客に属するドメイン内のユーザーを管理できる。

チームに割り当てられる以下のパーミッションにより、同等のアクセスが許可されます。

  • 顧客

    • 管理者 (表示 & 編集)

7.5.12. リセラー管理者 (reselleradmin)

  • 顧客に属するドメイン内のユーザーを管理できる。
  • ユーザーに顧客管理者のロールを割り当てることができる。

チームに割り当てられる以下のパーミッションにより、同等のアクセスが許可されます。

  • リセラー

    • 管理者 (表示 & 編集)

7.5.13. 管理者 (admin)

  • プラットフォーム内ですべてのアクションを実行できる。
  • ユーザーにリセラー管理者と顧客管理者のロールを割り当てることができる。

チームに割り当てられる以下のパーミッションにより、同等のアクセスが許可されます。

  • リセラー

    • 管理者 (表示 & 編集)