



解析儀表板是用於管理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 , --port和--mountPath路徑選項來設置主機,端口和安裝路徑。您可以使用所需的任何內容作為應用程序名稱,也可以將其列出,在這種情況下將使用應用程序ID。
--dev參數禁用生產就緒的安全功能。在Docker上運行解析儀表板時,此參數很有用。使用此參數將:
allowInsecureHTTPmasterKey在無加密的情況下傳輸在ClearText中
配x 在生產環境中部署解析儀表板時,請勿使用此參數。
啟動儀表板後,您可以在瀏覽器中訪問http:// localhost:4040:

解析儀表板與以下解析服務器版本兼容。
| 解析儀表板版本 | 解析服務器版本 | 相容的 |
|---|---|---|
| > = 1.0 | > = 2.1.4 | ✅是的 |
對儀表板進行了對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 | 數組<string> | 不 | - | ["_User"] | 應該顯示信息面板的類。 |
infoPanel[*].cloudCodeFunction | 細繩 | 不 | - | getUserDetails | 在數據瀏覽器中接收所選對象的雲代碼功能,並返回要在信息面板中顯示的響應。 |
apps.scripts | 數組<Object> | 是的 | [] | [{ ... }, { ... }] | 可以為該應用執行的腳本。 |
apps.scripts.title | 細繩 | 不 | - | 'Delete User' | 將顯示在數據瀏覽器上下文菜單和腳本運行確認對話框中的標題。 |
apps.scripts.classes | 數組<string> | 不 | - | ['_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 。 |
您還可以使用配置文件從命令行啟動儀表板。為此,在您的本地解析儀表板目錄層次結構內創建一個名為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命令啟動應用程序時起作用
您還可以使用兩種方法使用環境變量來配置儀表板。
在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儀表板具有一個內置的GraphQl操場,可與自動生成的Parse GraphQl API一起玩。
您可以通過將--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.0:4040/apps/mytestapp/api_console/graphql在瀏覽器中:

解析儀表板支持為每個應用程序添加一個可選圖標,因此您可以在列表中更容易識別它們。為此,您必須使用配置文件,在其中定義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 "
}解析儀表板支持為每個應用程序添加可選的背景顏色,因此您可以在列表中更容易識別它們。為此,您必須使用配置文件,在其中定義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
}
]
}您可以在每個應用程序的配置文件中設置appNameForURL ,以控制儀表板中應用程序的URL。這可以使使用書籤或在儀表板上共享鏈接變得更容易。
要將應用程序更改為生產,只需將production設置為“配置文件”中的true 。如果未指定,則默認值是錯誤的。
您可以通過在每個應用程序配置中preventSort到columnPreference選項來防止某些列可以排序
"apps" : [
{
"appId" : " local_app_id " ,
"columnPreference" : {
"_User" : [
{
"name" : " createdAt " ,
"visible" : true ,
"preventSort" : true
},
{
"name" : " updatedAt " ,
"visible" : true ,
"preventSort" : false
},
]
}
}
]如果您有很多列的類,並且經常使用相同的列過濾它們,則可以通過使用filterSortToTop選項擴展columnPreference設置將其分類到頂部:
"apps" : [
{
"columnPreference" : {
"_User" : [
{
"name" : " objectId " ,
"filterSortToTop" : true
},
{
"name" : " email " ,
"filterSortToTop" : true
}
]
}
}
]您保存在解析儀表板的數據瀏覽器中的過濾器僅適用於當前瀏覽器會話中的當前儀表板用戶。為了使應用程序的所有儀表板用戶永久使用過濾器,您可以在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 . 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
} ) ;encodeParseObjectInCloudFunction true ,以便在數據瀏覽器中的所選對像作為Parse.Object的實例提供在雲函數中。如果未設置該選項,將設置為false ,或者您使用的是舊版本的Parse服務器,則該對象可作為普通JavaScript對象提供,並且需要將其從JSON對象轉換為Parse.Object req.params.object = Parse.Object.fromJSON(req.params.object); ,在您調用任何Parse.Object屬性和方法之前。
對於舊版本的解析服務器:
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 ) ;如果要同時在同一服務器/端口上同時運行解析服務器和解析儀表板,則可以將它們作為Express Mifdreware運行:
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。您還可以在使用儀表板作為Express中間件時打開此設置:
var trustProxy = true ;
var dashboard = new ParseDashboard ( {
"apps" : [
{
"serverURL" : "http://localhost:1337/parse" ,
"appId" : "myAppId" ,
"masterKey" : "myMasterKey" ,
"appName" : "MyApp"
}
] ,
"trustProxy" : 1
} ) ;您可以通過啟用儀表板選項enableSecurityChecks以及訪問應用程序設置>安全性來查看解析服務器的安全狀態。
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格式,必須將配置useEncryptedPasswords參數設置為true 。您可以使用parse-dashboard --createUser生成加密密碼,並將結果粘貼到您的用戶配置中。
您可以通過需要多因素身份驗證(MFA)供用戶登錄來為用戶帳戶添加額外的安全層。
使用啟用MFA,用戶除登錄密碼外,還必須提供一個通常與物理設備綁定的一次性密碼。這意味著除了了解登錄密碼外,用戶還需要對設備進行物理訪問以生成一次性密碼。此一次性密碼是基於時間的(TOTP),僅在短時間內有效,通常為30秒,直到到期為止。
用戶需要一個身份驗證器應用程序來生成一次性密碼。這些應用程序由許多第三方提供,主要是免費的。
如果您通過運行parse-dashboard --createUser創建新用戶,則將詢問您是否要為新用戶啟用MFA。要為現有用戶啟用MFA,請運行parse-dashboard --createMFA生成mfa秘密,然後將其添加到現有用戶配置中,例如:
{
"apps" : [{ "..." : " ... " }],
"users" : [
{
"user" : " user1 " ,
"pass" : " pass " ,
"mfa" : " lmvmOIZGMTQklhOIhveqkumss "
}
]
}解析儀表板遵循行業標準,默認情況下支持常見的OTP算法SHA-1 ,與大多數身份驗證器應用兼容。如果您對TOTP特徵(算法,數字長度,時間段)有特定的安全要求,則可以使用上述指導配置來自定義它們。
如果您配置了儀表板來管理多個應用程序,則可以根據用戶身份限制應用程序的管理。
為此,請更新您的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 。
啟動解析服務器2.6.5,可以提供一個readOnlyMasterKey來解析服務器,以防止客戶對像上的突變。如果要使用此功能保護儀表板,只需使用readOnlyMasterKey而不是masterKey 。所有寫入電話都會失敗。
從您的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
} ) ;確保為要在“應用程序”配置中使用僅讀取功能的應用程序指定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有一個可讀的訪問
確保為要在“應用程序”配置中使用僅讀取功能的應用程序指定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類中添加兩個必需的過濾條件。
數據瀏覽器提供了一個信息面板,可以在數據瀏覽器表中顯示與當前選擇的對象相關的信息。通過單擊右上角的“菜單”按鈕顯示面板在瀏覽儀表板選項中配置信息面板時,可以看到信息面板。
以下示例儀表板配置通過調用雲代碼User Details getUserDetails並顯示返回的響應,顯示了_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 | 細繩 | 不 | 視頻的網址要顯示。 |
例子:
{
"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 "
}
}
}此功能使您可以將數據瀏覽器用作另一個用戶,並尊重該用戶的數據權限。例如,您只會看到用戶有權查看的記錄和字段。
配x 登錄另一個用戶將觸發相同的雲觸發器,就像用戶使用任何其他登錄方法登錄自己一樣。登錄另一個用戶需要輸入該用戶的密碼。
此功能使您可以更改指針在瀏覽器中表示的方式。默認情況下,指針由鏈接對象的objectId表示。您可以將其更改為對像類的任何其他列。例如,如果類Installation字段包含指向類User的指針,則指針將默認情況下顯示用戶的objectId 。您可以更改此信息以顯示用戶的字段email ,以便指針顯示用戶的電子郵件地址。
objectId 。createdAt , updatedAt , ACL類的系統列無法將其設置為指針密鑰。objectId 。
配x 對於每行的每個自定義指針鍵,觸發服務器請求以解決自定義指針鍵。例如,如果瀏覽器顯示一個具有50行的類,並且每行包含3個自定義指針鍵,則觸發總共150個單獨的服務器請求。
此功能將採用選定的行或單個類的所有行,並將其保存到CSV文件中,然後下載。 CSV標頭添加到與列名稱匹配的文件頂部。
配x 導出所有數據時,目前有10,000行限制。如果同類中有10,000多行,則CSV文件僅包含10,000行。
我們真的希望Parse成為您的,看到它在開源社區中成長和壯成長。請參閱解析儀表板指南的貢獻。
截至2017年4月5日,Parse,LLC已將此代碼轉移到Parse-Community組織,並且將不再為此代碼做出貢獻或分發。