



Parse Dashboardは、Parse Serverアプリを管理するためのスタンドアロンダッシュボードです。
npmからダッシュボードをインストールします。
npm install -g parse-dashboard
アプリID、マスターキー、URL、およびこのような名前を提供することにより、単一のコマンドを備えたアプリのダッシュボードを起動できます。
parse-dashboard --dev --appId yourAppId --masterKey yourMasterKey --serverURL "https://example.com/parse" --appName optionalName
--host 、ポート、 --mountPathパスを設定することができます--port必要なものをアプリ名として使用するか、アプリIDが使用される場合は除外できます。
--devパラメーターは、生産対応のセキュリティ機能を無効にします。このパラメーターは、Dockerでパースダッシュボードを実行するときに役立ちます。このパラメーターを使用すると:
allowInsecureHTTPmasterKey暗号化なしでクリアテキストで送信できるようにします
ショ和 プロダクション環境にParse Dashboardを展開するときは、このパラメーターを使用しないでください。
ダッシュボードを起動した後、ブラウザでhttp:// localhost:4040にアクセスできます。

Parse Dashboardは、次のParse Serverバージョンと互換性があります。
| ダッシュボードバージョンを解析します | サーバーバージョンを解析します | 互換性がある |
|---|---|---|
| > = 1.0 | > = 2.1.4 | ✅はい |
Parse Dashboardは、node.jsの最新のリリースで継続的にテストされ、互換性を確保します。 node.jsの長期サポート計画に従い、公式にサポートされ、終了日に達していないバージョンに対してのみテストします。
| バージョン | 最新バージョン | 終末期 | 互換性がある |
|---|---|---|---|
| node.js 18 | 18.20.4 | 2025年5月 | ✅はい |
| node.js 20 | 20.18.0 | 2026年4月 | ✅はい |
| node.js 22 | 22.9.0 | 2027年4月 | ✅はい |
| パラメーター | タイプ | オプション | デフォルト | 例 | 説明 |
|---|---|---|---|---|---|
apps | 配列<Object> | いいえ | - | [{ ... }, { ... }] | ダッシュボード用に構成されているアプリ。 |
infoPanel | 配列<Object> | はい | - | [{ ... }, { ... }] | 情報パネルの構成。 |
infoPanel[*].title | 弦 | いいえ | - | User Details | パネルタイトル。 |
infoPanel[*].classes | 配列<文字列> | いいえ | - | ["_User"] | 情報パネルを表示するクラス。 |
infoPanel[*].cloudCodeFunction | 弦 | いいえ | - | getUserDetails | データブラウザで選択したオブジェクトを受信し、情報パネルに表示される応答を返すクラウドコード関数。 |
apps.scripts | 配列<Object> | はい | [] | [{ ... }, { ... }] | そのアプリで実行できるスクリプト。 |
apps.scripts.title | 弦 | いいえ | - | 'Delete User' | データブラウザのコンテキストメニューとスクリプト実行確認ダイアログに表示されるタイトル。 |
apps.scripts.classes | 配列<文字列> | いいえ | - | ['_User'] | スクリプトを実行できる解析オブジェクトのクラス。 |
apps.scripts.cloudCodeFunction | 弦 | いいえ | - | 'deleteUser' | 実行する解析クラウド関数の名前。 |
apps.scripts.showConfirmationDialog | ブール | はい | false | true | スクリプトが実行される前に確認ダイアログを表示する場合はtrueです。スクリプトをすぐに実行する必要がある場合はfalse 。 |
apps.scripts.confirmationDialogStyle | 弦 | はい | info | critical | 確認ダイアログのスタイル。有効な値: info (青いスタイル)、 critical (赤いスタイル)。 |
apps.cloudConfigHistoryLimit | 整数 | はい | 100 | 100 | クラウド構成の変更履歴で保存する必要がある歴史的価値の数。有効な値: 0 ... Number.MAX_SAFE_INTEGER 。 |
Configファイルを使用して、コマンドラインからダッシュボードを起動することもできます。これを行うには、ローカルパースダッシュボードディレクトリ階層内のparse-dashboard-config.jsonという新しいファイルを作成します。ファイルは次の形式と一致する必要があります。
{
"apps" : [
{
"serverURL" : " http://localhost:1337/parse " ,
"appId" : " myAppId " ,
"masterKey" : " myMasterKey " ,
"appName" : " MyApp "
}
]
}その後、 parse-dashboard --config parse-dashboard-config.jsonを使用してダッシュボードを起動できます。
これは、
parse-dashboardコマンドを使用してアプリを起動するときにのみ機能します
環境変数を使用してダッシュボードを構成するために使用できる2つの方法もあります。
PARSE_DASHBOARD_CONFIGでJSON構成全体を提供すると、構成ファイルと同じように解析されます。
各構成オプションを個別に定義することもできます。
HOST: "0.0.0.0"
PORT: "4040"
MOUNT_PATH: "/"
PARSE_DASHBOARD_TRUST_PROXY: undefined // Or "1" to trust connection info from a proxy's X-Forwarded-* headers
PARSE_DASHBOARD_SERVER_URL: "http://localhost:1337/parse"
PARSE_DASHBOARD_MASTER_KEY: "myMasterKey"
PARSE_DASHBOARD_APP_ID: "myAppId"
PARSE_DASHBOARD_APP_NAME: "MyApp"
PARSE_DASHBOARD_USER_ID: "user1"
PARSE_DASHBOARD_USER_PASSWORD: "pass"
PARSE_DASHBOARD_SSL_KEY: "sslKey"
PARSE_DASHBOARD_SSL_CERT: "sslCert"
PARSE_DASHBOARD_CONFIG: undefined // Only for reference, it must not exist
PARSE_DASHBOARD_COOKIE_SESSION_SECRET: undefined // set the cookie session secret, defaults to a random string. Use this option if you want sessions to work across multiple servers, or across restarts
同じダッシュボードから複数のアプリを管理することも可能です。 parse-dashboard-config.jsonファイルの"apps"配列に追加のエントリを追加するだけです。
{
"apps" : [
{
"serverURL" : " http://localhost:1337/parse " , // Self-hosted Parse Server
"appId" : " myAppId " ,
"masterKey" : " myMasterKey " ,
"appName" : " My Parse Server App "
},
{
"serverURL" : " http://localhost:1337/parse2 " , // Self-hosted Parse Server
"appId" : " myAppId " ,
"masterKey" : " myMasterKey " ,
"appName" : " My Parse Server App 2 "
}
]
}Parse Dashboardには、自動生成されたParse GraphQL APIで再生するためのグラフクルプレイグラウンドが組み込まれています。
GraphQLプレイグラウンドをセットアップして、 --graphQLServerURLオプションをparse-dashboard CLIに渡すことができます。
parse-dashboard --dev --appId yourAppId --masterKey yourMasterKey --serverURL "https://example.com/parse" --graphQLServerURL "https://example.com/graphql" --appName optionalName
graphQLServerURLオプションは、 PARSE_DASHBOARD_GRAPHQL_SERVER_URLと呼ばれる環境変数からも利用できます。
HOST: "0.0.0.0"
PORT: "4040"
MOUNT_PATH: "/"
PARSE_DASHBOARD_SERVER_URL: "http://localhost:1337/parse"
PARSE_DASHBOARD_GRAPHQL_SERVER_URL: "http://localhost:1337/graphql"
PARSE_DASHBOARD_MASTER_KEY: "myMasterKey"
PARSE_DASHBOARD_APP_ID: "myAppId"
PARSE_DASHBOARD_APP_NAME: "MyApp"
parse-dashboard-config.jsonファイルのGraphQLプレイグラウンドをセットアップすることもできます。
{
"apps" : [
{
"serverURL" : " http://localhost:1337/parse " ,
"graphQLServerURL" : " http://localhost:1337/graphql " ,
"appId" : " myAppId " ,
"masterKey" : " myMasterKey " ,
"appName" : " My Parse Server App "
},
{
"serverURL" : " http://localhost:1337/parse2 " ,
"graphQLServerURL" : " http://localhost:1337/graphql2 " ,
"appId" : " myAppId " ,
"masterKey" : " myMasterKey " ,
"appName" : " My Parse Server App 2 "
}
]
}ダッシュボードを起動した後、ブラウザでhttp://0.0.0:4040/apps/mytestapp/api_console/graphqlにアクセスできます。

Parse Dashboardは、各アプリにオプションのアイコンを追加することをサポートするため、リストで簡単に識別できます。そのためには、構成ファイルを使用し、その中のiconsFolderを定義し、各アプリ(拡張子を含む)のiconNameパラメーターを定義する必要があります。 iconsFolderのパスは、構成ファイルに関連しています。 Parsedashboardをグローバルにインストールしている場合は、 iconsFolderの値としてフルパスを使用する必要があります。それが意味することを視覚化するために、次の例では、 icons構成ファイルと同じディレクトリの下にあるディレクトリです。
{
"apps" : [
{
"serverURL" : " http://localhost:1337/parse " ,
"appId" : " myAppId " ,
"masterKey" : " myMasterKey " ,
"appName" : " My Parse Server App " ,
"iconName" : " MyAppIcon.png " ,
}
],
"iconsFolder" : " icons "
}Parse Dashboardは、各アプリにオプションの背景色を追加することをサポートするため、リストで簡単に識別できます。そのためには、構成ファイルを使用して、各アプリのパラメーターであるprimaryBackgroundColorとsecondaryBackgroundColorを定義する必要があります。 CSS styleです。それが意味することを視覚化するために、次の例では、 backgroundColorは構成ファイルです。
{
"apps" : [
{
"serverURL" : " http://localhost:1337/parse " ,
"appId" : " myAppId " ,
"masterKey" : " myMasterKey " ,
"appName" : " My Parse Server App " ,
"primaryBackgroundColor" : " #FFA500 " , // Orange
"secondaryBackgroundColor" : " #FF4500 " // OrangeRed
},
{
"serverURL" : " http://localhost:1337/parse " ,
"appId" : " myAppId " ,
"masterKey" : " myMasterKey " ,
"appName" : " My Parse Server App [2] " ,
"primaryBackgroundColor" : " rgb(255, 0, 0) " , // Red
"secondaryBackgroundColor" : " rgb(204, 0, 0) " // DarkRed
}
]
}ダッシュボード内のアプリのURLを制御するために、各アプリの構成ファイルにappNameForURLを設定できます。これにより、ブックマークを使用したり、ダッシュボードでリンクを共有したりすることができます。
アプリを生産に変更するには、構成ファイルでproduction trueに設定するだけです。デフォルト値は、指定されていない場合はfalseです。
各アプリの構成の列のプレーファレンスオプションにpreventSortを追加することにより、いくつかの列がソート可能であることを防ぐことができます
"apps" : [
{
"appId" : " local_app_id " ,
"columnPreference" : {
"_User" : [
{
"name" : " createdAt " ,
"visible" : true ,
"preventSort" : true
},
{
"name" : " updatedAt " ,
"visible" : true ,
"preventSort" : false
},
]
}
}
]たくさんの列のあるクラスがあり、同じ列で頻繁にフィルタリングする場合、 columnPreference設定をfilterSortToTopオプションで拡張することで、それらを上部に並べ替えることができます。
"apps" : [
{
"columnPreference" : {
"_User" : [
{
"name" : " objectId " ,
"filterSortToTop" : true
},
{
"name" : " email " ,
"filterSortToTop" : true
}
]
}
}
]Parse Dashboardのデータブラウザで保存するフィルターは、現在のブラウザセッションで現在のダッシュボードユーザーがのみ使用できます。アプリのすべてのダッシュボードユーザーが恒久的に利用できるようにするには、 classPreference設定でフィルターを定義できます。
例えば:
"apps" : [{
"classPreference" : {
"_Role" : {
"filters" : [{
"name" : " Filter Name " ,
"filter" : [
{
"field" : " objectId " ,
"constraint" : " exists "
}
]
}]
}
}
}]データブラウザーに最初にフィルターを保存してから、アプリ設定の下でフィルター定義をエクスポートしてクラスの設定をエクスポートすることにより、手作業でそれを書き込むことなく、フィルター定義を便利に作成できます。
scriptsオプションでクラウド関数を実行するためのスクリプトを指定できます。
"apps" : [
{
"scripts" : [
{
"title" : " Delete Account " ,
"classes" : [ " _User " ],
"cloudCodeFunction" : " deleteAccount " ,
"showConfirmationDialog" : true ,
"confirmationDialogStyle" : " critical "
}
]
}
]また、 scripsオプションを使用してカスタムフィールドを指定することもできます。
"apps" : [
{
"scripts" : [
{
"title" : " Delete account " ,
"classes" : [
{
"name" : " _User " ,
"fields" : [
{ "name" : " createdAt " , "validator" : " value => value > new Date( " 2025 " ) " }
]
}
],
"cloudCodeFunction" : " deleteAccount "
}
]
}
]
次に、呼び出されるParseサーバーのクラウド関数を定義します。データブラウザで選択されたオブジェクトは、リクエストパラメーターとして利用可能になります。
Parse . Cloud . define ( 'deleteAccount' , async ( req ) => {
req . params . object . set ( 'deleted' , true ) ;
await req . params . object . save ( null , { useMasterKey : true } ) ;
} , {
requireMaster : true
} ) ;スクリプトが呼び出されたフィールドは、 selectedFieldからアクセスできます。
Parse . Cloud . define ( 'deleteAccount' , async ( req ) => {
if ( req . params . selectedField !== 'objectId' ) {
throw new Parse . Error ( Parse . Error . SCRIPT_FAILED , 'Deleting accounts is only available on the objectId field.' ) ;
}
req . params . object . set ( 'deleted' , true ) ;
await req . params . object . save ( null , { useMasterKey : true } ) ;
} , {
requireMaster : true
} ) ;Parse.Objectのインスタンスとしてクラウド関数で利用可能になるように、Parse ServerオプションencodeParseObjectInCloudFunction trueに設定する必要がある場合があります。オプションが設定されていない、 falseに設定されている場合、または古いバージョンのParseサーバーを使用している場合、オブジェクトはプレーンJavaScriptオブジェクトとして利用可能になり、jsonオブジェクトからParse.Objectインスタンスに変換する必要req.params.object = Parse.Object.fromJSON(req.params.object); 、 Parse.Objectプロパティとメソッドを呼び出す前に。
Parse Serverの古いバージョンの場合:
Parse . Cloud . define ( 'deleteAccount' , async ( req ) => {
req . params . object = Parse . Object . fromJSON ( req . params . object ) ;
req . params . object . set ( 'deleted' , true ) ;
await req . params . object . save ( null , { useMasterKey : true } ) ;
} , {
requireMaster : true
} ) ; Parse . Cloud . define ( 'deleteAccount' , async ( req ) => {
if ( ! req . master || ! req . params . object ) {
throw 'Unauthorized' ;
}
req . params . object = Parse . Object . fromJSON ( req . params . object ) ;
req . params . object . set ( 'deleted' , true ) ;
await req . params . object . save ( null , { useMasterKey : true } ) ;
} ) ;CLIでダッシュボードを開始する代わりに、エクスプレスミドルウェアとして実行することもできます。
var express = require ( 'express' ) ;
var ParseDashboard = require ( 'parse-dashboard' ) ;
var dashboard = new ParseDashboard ( {
"apps" : [
{
"serverURL" : "http://localhost:1337/parse" ,
"appId" : "myAppId" ,
"masterKey" : "myMasterKey" ,
"appName" : "MyApp"
}
]
} ) ;
var app = express ( ) ;
// make the Parse Dashboard available at /dashboard
app . use ( '/dashboard' , dashboard ) ;
var httpServer = require ( 'http' ) . createServer ( app ) ;
httpServer . listen ( 4040 ) ;同じサーバー/ポートでダッシュボードを解析し、パースダッシュボードの両方を実行する場合は、両方のエクスプレスミドルウェアとして実行できます。
var express = require ( 'express' ) ;
var ParseServer = require ( 'parse-server' ) . ParseServer ;
var ParseDashboard = require ( 'parse-dashboard' ) ;
var api = new ParseServer ( {
// Parse Server settings
} ) ;
var options = { allowInsecureHTTP : false } ;
var dashboard = new ParseDashboard ( {
// Parse Dashboard settings
} , options ) ;
var app = express ( ) ;
// make the Parse Server available at /parse
app . use ( '/parse' , api ) ;
// make the Parse Dashboard available at /dashboard
app . use ( '/dashboard' , dashboard ) ;
var httpServer = require ( 'http' ) . createServer ( app ) ;
httpServer . listen ( 4040 ) ;アプリのサーバーURLにブラウザがアクセスできることを確認してください。ダッシュボードを展開している場合、 localhost URLは機能しません。
アプリマスターキーを漏らすことなくダッシュボードを安全に展開するには、HTTPSと基本認証を使用する必要があります。
展開されたダッシュボードは、安全な接続を使用している場合に検出します。ロードバランサーの背後にあるダッシュボードを展開している場合、または最前線のプロキシを展開している場合、アプリは接続が安全であることを検出できません。この場合、 --trustProxy=1オプションを使用してダッシュボードを起動することができます(またはPARSE_DASHBOARD_TRUST_PROXY CONFIG VARを1に設定して)クライアントの接続セキュリティのX-Forwarded-*ヘッダーに依存します。これは、Herokuのようなサービスでホスティングするのに役立ちます。ここでは、提供されたプロキシヘッダーを信頼して、HTTPを使用しているかHTTPSを使用しているかを正しく決定できます。ダッシュボードをエクスプレスミドルウェアとして使用する場合、この設定をオンにすることもできます。
var trustProxy = true ;
var dashboard = new ParseDashboard ( {
"apps" : [
{
"serverURL" : "http://localhost:1337/parse" ,
"appId" : "myAppId" ,
"masterKey" : "myMasterKey" ,
"appName" : "MyApp"
}
] ,
"trustProxy" : 1
} ) ;DashboardオプションをenableSecurityChecksにすることにより、Parse Serverのセキュリティステータスを表示できます。
const dashboard = new ParseDashboard ( {
"apps" : [
{
"serverURL" : "http://localhost:1337/parse" ,
"appId" : "myAppId" ,
"masterKey" : "myMasterKey" ,
"appName" : "MyApp"
"enableSecurityChecks" : true
}
] ,
} ) ;parse-dashboard-config.json構成ファイルをユーザー名とパスワードを追加して、基本認証用のダッシュボードを構成できます。
{
"apps" : [{ "..." : " ... " }],
"users" : [
{
"user" : " user1 " ,
"pass" : " pass "
},
{
"user" : " user2 " ,
"pass" : " pass "
}
],
"useEncryptedPasswords" : true | false
}パスワードはplain textまたはbcrypt形式のいずれかに保存できます。 bcrypt形式を使用するには、config useEncryptedPasswordsパラメーターをtrueに設定する必要があります。 parse-dashboard --createUserを使用して、ユーザーの構成に結果を貼り付けることにより、暗号化されたパスワードを生成できます。
ユーザーがログインするためにマルチファクター認証(MFA)を要求することにより、ユーザーアカウントにセキュリティの追加レイヤーを追加できます。
MFAを有効にすると、ユーザーはログインパスワードに加えて、通常、物理デバイスにバインドされる1回限りのパスワードを提供する必要があります。これは、ログインパスワードを知ることに加えて、ユーザーは1回限りのパスワードを生成するためにデバイスに物理的にアクセスできる必要があることを意味します。この1回限りのパスワードは時間ベース(TOTP)であり、期限切れになるまで、通常は30秒間しか有効です。
ユーザーは、1回限りのパスワードを生成するためにAuthenticatorアプリが必要です。これらのアプリは、多くのサードパーティによって提供され、ほとんどが無料で提供されます。
parse-dashboard --createUserを実行して新しいユーザーを作成した場合、新しいユーザーにMFAを有効にするかどうかを尋ねられます。既存のユーザーにMFAを有効にするには、 parse-dashboard --createMFAを実行して、既存のユーザー構成に追加するmfa秘密を生成します。たとえば
{
"apps" : [{ "..." : " ... " }],
"users" : [
{
"user" : " user1 " ,
"pass" : " pass " ,
"mfa" : " lmvmOIZGMTQklhOIhveqkumss "
}
]
} Parse Dashboardは、業界標準に従い、デフォルトで一般的なOTPアルゴリズムSHA-1をサポートし、ほとんどの認証アプリと互換性があります。 TOTP特性(アルゴリズム、数字の長さ、期間)に関する特定のセキュリティ要件がある場合は、上記のガイド付き構成を使用してカスタマイズできます。
複数のアプリケーションを管理するようにダッシュボードを構成している場合、ユーザーIDに基づいてアプリの管理を制限できます。
そのために、 parse-dashboard-config.json構成ファイルを更新して、次の形式と一致します。
{
"apps" : [{ "..." : " ... " }],
"users" : [
{
"user" : " user1 " ,
"pass" : " pass1 " ,
"apps" : [{ "appId" : " myAppId1 " }, { "appId" : " myAppId2 " }]
},
{
"user" : " user2 " ,
"pass" : " pass2 " ,
"apps" : [{ "appId" : " myAppId1 " }]
} ]
}このような構成の効果は次のとおりです。
user1ログインすると、ダッシュボードからmyAppId1とmyAppId2管理できます。
user2がログインすると、ダッシュボードからmyAppId1のみを管理できます。
Parse-Server 2.6.5を開始すると、クライアントからのオブジェクトの突然変異を防ぐために、 readOnlyMasterKey解析に提供することができます。この機能でダッシュボードを保護する場合は、 masterKeyの代わりにreadOnlyMasterKeyを使用してください。すべての書き込みコールは失敗します。
parse-serverを開始します
{
"masterKey" : " YOUR_MASTER_KEY_HERE " ,
"readOnlyMasterKey" : " YOUR_READ_ONLY_MASTER_KEY " ,
}次に、ダッシュボードの構成で:
var trustProxy = true ;
var dashboard = new ParseDashboard ( {
"apps" : [
{
"serverURL" : "http://localhost:1337/parse" ,
"appId" : "myAppId" ,
"masterKey" : "YOUR_READ_ONLY_MASTER_KEY" ,
"appName" : "MyApp"
}
] ,
"trustProxy" : 1
} ) ;「Apps」構成で読み取り専用機能を使用するアプリにreadOnlyMasterKey指定してください。ユーザーを読み取り専用ユーザーとしてマークできます。
{
"apps" : [
{
"appId" : " myAppId1 " ,
"masterKey" : " myMasterKey1 " ,
"readOnlyMasterKey" : " myReadOnlyMasterKey1 " ,
"serverURL" : " myURL1 " ,
"port" : 4040 ,
"production" : true
},
{
"appId" : " myAppId2 " ,
"masterKey" : " myMasterKey2 " ,
"readOnlyMasterKey" : " myReadOnlyMasterKey2 " ,
"serverURL" : " myURL2 " ,
"port" : 4041 ,
"production" : true
}
],
"users" : [
{
"user" : " user1 " ,
"pass" : " pass1 " ,
"readOnly" : true ,
"apps" : [{ "appId" : " myAppId1 " }, { "appId" : " myAppId2 " }]
},
{
"user" : " user2 " ,
"pass" : " pass2 " ,
"apps" : [{ "appId" : " myAppId1 " }]
}
]
}このようにして、 user1 myAppId1とmyAppId2に読み取るようにアクセスできます
「Apps」構成で読み取り専用機能を使用するアプリにreadOnlyMasterKey指定してください。アプリごとにユーザーへの読み取り専用アクセスを提供できます。
{
"apps" : [
{
"appId" : " myAppId1 " ,
"masterKey" : " myMasterKey1 " ,
"readOnlyMasterKey" : " myReadOnlyMasterKey1 " ,
"serverURL" : " myURL " ,
"port" : 4040 ,
"production" : true
},
{ "..." : " ... " }
],
"users" : [
{
"user" : " user " ,
"pass" : " pass " ,
"apps" : [{ "appId" : " myAppId " , "readOnly" : true }, { "appId" : " myAppId2 " }]
}
]
}この構成により、user1はmyAppId1への読み取り専用アクセスとmyAppId2への読み取り/書き込みアクセスのみになります。
ダッシュボードの最新バージョンを使用すると、プッシュ通知のためにローカライズされたメッセージを送信することができます。ダッシュボードユーザーにサポートしたい場所または言語のリストを提供できます。
{
"apps" : [
{
"serverURL" : " http://localhost:1337/parse " ,
"appId" : " myAppId " ,
"masterKey" : " myMasterKey " ,
"appName" : " My Parse Server App " ,
"iconName" : " MyAppIcon.png " ,
"supportedPushLocales" : [ " en " , " ru " , " fr " ]
}
],
"iconsFolder" : " icons "
}公式のDocker画像はDocker Hubで公開されています
config.jsonがボリュームとして取り付けられた状態で画像を実行します
docker run -d -p 8080:4040 -v host/path/to/config.json:/src/Parse-Dashboard/parse-dashboard-config.json parseplatform/parse-dashboard --dev
また、AppID、MasterKey、ServerUrlを引数として渡すこともできます。
docker run -d -p 4040:4040 parseplatform/parse-dashboard --dev --appId $APP_ID --masterKey $MASTER_KEY --serverURL $SERVER_URL
デフォルトでは、コンテナはコンテナ内のポート4040でアプリを起動します。ただし、カスタムコマンドも実行できます(カスタムセットアップのためにDeploying in production参照)。
この例では、ホストマシンのポート80で生産モードでアプリケーションを実行します。
docker run -d -p 80:8080 -v host/path/to/config.json:/src/Parse-Dashboard/parse-dashboard-config.json parse-dashboard --port 8080 --dev
Dockerに慣れていない場合、 --port 8080エントリポイントへの引数として渡され、完全なコマンドnpm start -- --port 8080形成します。アプリケーションはコンテナ内のポート8080で開始され、ポート8080ホストマシンのポート80に取り付けられます。
(以下は機能の完全なリストではなく、包括的な機能リストを作成するための進行中の作業です。)
フィルターダイアログでは、現在のクラスへのポインターがある他のクラスに基づいてリレーショナルフィルター条件を追加できます。
たとえば、 _Userクラスのユーザーは次のとおりです。
_Userポインターフィールドを使用したPurchaseクラスでの購入_Userポインターフィールドを備えたPaymentクラスのトランザクションリレーショナルフィルターを使用すると、すべてのユーザーをフィルタリングできます。
Purchaseクラスで)Paymentクラス)で支払うこのようなフィルターを適用するには、 _Userクラスに移動し、 PurchaseとPaymentクラスで2つの必要なフィルター条件を追加します。
データブラウザは、データブラウザーテーブルで現在選択されているオブジェクトに関連する情報を表示できる情報パネルを提供します。情報パネルは、ダッシュボードオプションで情報パネルが構成されているクラスを閲覧するときに、右上隅のメニューボタン表示パネルをクリックすることにより、表示されます。
次の例のダッシュボード構成は、クラウドコード関数getUserDetailsを呼び出し、返された応答を表示することにより、タイトルUser Details備えた_Userクラスの情報パネルを示しています。
"apps" : [
{
"infoPanel" : [
{
"title" : " User Details " ,
"classes" : [ " _User " ],
"cloudCodeFunction" : " getUserDetails "
}
]
}
]クラウドコード関数は、ペイロード内の選択したオブジェクトを受信し、さまざまなアイテムを含む応答を返します。
情報パネルには、さまざまな情報グループを表示するために複数のセグメントを含めることができます。
| パラメーター | 価値 | オプション | 説明 |
|---|---|---|---|
segments | 配列 | いいえ | 各セグメントは、表示するアイテムの明確なグループを表すセグメントの順序付けられた配列です。 |
segments[i].title | 弦 | いいえ | 表示されるセグメントのタイトル。 |
segments[i].items | 配列 | いいえ | セグメント内のアイテムの注文された配列。各アイテムには、テキスト、キー価値のペア、テーブル、画像など、さまざまなタイプがあります。 |
例:
{
"panel" : {
"segments" : [
{
"title" : " Purchases " ,
"items" : [
{
"type" : " text " ,
"text" : " This user has a high churn risk! "
}
]
}
]
}
}アイテムアレイには、テキスト、キー価値のペア、テーブル、画像、ビデオ、オーディオ、ボタンなど、さまざまな種類のコンテンツを含めることができます。各タイプは、情報パネル内に情報を表示する異なる方法を提供し、カスタマイズ可能でリッチなユーザーエクスペリエンスを可能にします。以下は、各タイプの詳細な説明です。
単純なテキストフィールド。
| パラメーター | 価値 | オプション | 説明 |
|---|---|---|---|
type | 弦 | いいえ | "text"でなければなりません。 |
text | 弦 | いいえ | 表示するテキスト。 |
例:
{
"type" : " text " ,
"text" : " This user has a high churn risk! "
}キーと値で構成されるテキストアイテム。値はオプションでURLにリンクできます。
| パラメーター | 価値 | オプション | 説明 |
|---|---|---|---|
type | 弦 | いいえ | "keyValue"でなければなりません。 |
key | 弦 | いいえ | 表示する重要なテキスト。 |
value | 弦 | いいえ | 表示する値テキスト。 |
url | 弦 | はい | [値]テキストをクリックするときに新しいブラウザタブで開かれるURL。 |
例:
{
"type" : " keyValue " ,
"key" : " Lifetime purchase value " ,
"value" : " $10k "
}{
"type" : " keyValue " ,
"key" : " Last purchase ID " ,
"value" : " 123 " ,
"url" : " https://example.com/purchaseDetails?purchaseId=012345 "
}構造化された形式でデータを表示する列と行を備えたテーブル。
| パラメーター | 価値 | オプション | 説明 |
|---|---|---|---|
type | 弦 | いいえ | "table"でなければなりません。 |
columns | 配列 | いいえ | 名前とタイプを含む列定義。 |
columns[*].name | 弦 | いいえ | 表示する列の名前。 |
columns[*].type | 弦 | いいえ | 列値のタイプ(例: "string" 、 "number" )。 |
rows | 配列 | いいえ | データの行。各行は、各列の値を含むオブジェクトです。 |
例:
{
"type" : " table " ,
"columns" : [
{
"name" : " Name " ,
"type" : " string "
},
{
"name" : " Age " ,
"type" : " number "
}
],
"rows" : [
{
"Name" : " Alice " ,
"Age" : 30
},
{
"Name" : " Bob " ,
"Age" : 40
}
]
}パネルに表示される画像。
| パラメーター | 価値 | オプション | 説明 |
|---|---|---|---|
type | 弦 | いいえ | "image"でなければなりません。 |
url | 弦 | いいえ | 表示する画像のURL。 |
例:
{
"type" : " image " ,
"url" : " https://example.com/images?purchaseId=012345 "
}パネルに表示されるビデオ。
| パラメーター | 価値 | オプション | 説明 |
|---|---|---|---|
type | 弦 | いいえ | "video"でなければなりません。 |
url | 弦 | いいえ | 表示するビデオのURL。 |
例:
{
"type" : " video " ,
"url" : " https://example.com/video.mp4 "
}パネルで再生されるオーディオファイル。
| パラメーター | 価値 | オプション | 説明 |
|---|---|---|---|
type | 弦 | いいえ | "audio"でなければなりません。 |
url | 弦 | いいえ | 再生するオーディオのURL。 |
例:
{
"type" : " audio " ,
"url" : " https://example.com/audio.mp3 "
}クリックするとアクションをトリガーするボタン。
| パラメーター | 価値 | オプション | 説明 |
|---|---|---|---|
type | 弦 | いいえ | "button"でなければなりません。 |
text | 弦 | いいえ | ボタンに表示するテキスト。 |
action | 物体 | いいえ | ボタンをクリックすると実行されるアクション。 |
action.url | 弦 | いいえ | リクエストを送信するURL。 |
action.method | 弦 | いいえ | アクションに使用するHTTPメソッド(例: "POST" )。 |
action.headers | 物体 | はい | リクエストに含めるオプションのヘッダー。 |
action.body | 物体 | はい | JSON形式のリクエストの本文。 |
例:
{
"type" : " button " ,
"text" : " Click me! " ,
"action" : {
"url" : " https://api.example.com/click " ,
"method" : " POST " ,
"headers" : {
"Content-Type" : " application/json "
},
"body" : {
"key" : " value "
}
}
}この機能により、データブラウザを別のユーザーとして使用して、そのユーザーのデータアクセス権を尊重できます。たとえば、ユーザーが見る許可を持っているレコードとフィールドのみが表示されます。
ショ和 別のユーザーとしてログインすると、他のログイン方法を使用してユーザーが自分自身にログインしたかのように、同じクラウドトリガーをトリガーします。別のユーザーとしてログインするには、そのユーザーのパスワードを入力する必要があります。
この機能を使用すると、ブラウザでポインターの表現方法を変更できます。デフォルトでは、ポインターはリンクされたオブジェクトのobjectIdで表されます。これをオブジェクトクラスの他の列に変更できます。たとえば、クラスのInstallationクラスUserへのポインターを含むフィールドがある場合、ポインターはデフォルトでユーザーのobjectId表示します。これを変更してユーザーのフィールドemailを表示して、ポインターが代わりにユーザーのメールアドレスを表示するようにすることができます。
objectIdを表示します。createdAt 、 updatedAt 、 ACLなどのシステム列をポインターキーとして設定することはできません。objectIdにリセットします。
ショ和 各行の各カスタムポインターキーについて、カスタムポインターキーを解決するためにサーバー要求がトリガーされます。たとえば、ブラウザに50行のクラスが表示され、各行に3つのカスタムポインターキーが含まれている場合、合計150の個別のサーバーリクエストがトリガーされます。
この機能は、選択した行または個々のクラスのすべての行のいずれかを取得し、それらをCSVファイルに保存し、その後ダウンロードされます。 CSVヘッダーは、列名と一致するファイルの上部に追加されます。
ショ和 現在、すべてのデータをエクスポートするときに10,000行の制限があります。クラスに10,000行以上が存在する場合、CSVファイルには10,000行しか含まれていません。
私たちは、Parseがあなたのものになり、それが成長し、オープンソースコミュニティで繁栄するのを見ることを本当に望んでいます。 Dashboard Guideへの貢献をご覧ください。
2017年4月5日現在、Parse、LLCはこのコードをParse-Community組織に転送し、このコードに貢献または配布しなくなります。