Closed dixonsiu closed 7 years ago
Introduce the following new key/value pairs for profile.json so that the app can determine the rendering routine properly.
Since there is no limitation on what we can put in a Personium cell, we try to categories cells in the following types.
"Person"
Data subject which is supposed to be a "real" person.
Issue No.1 solved: HomeApp is the default app.
{
"DisplayName":"Guest",
"Description":"",
"Image": ...
"CellType": "Person"
}
"Organization"
Data consumer or provider which is an organziation.
Issue No.1 solved: HomeApp for Biz is the default app.
Examples: P's Mart
{
"DisplayName": "P's Mart (Wakaba Branch)",
"Description": "",
"Image": ...
"CellType": "Organization"
}
The key/value pair ("Passive":
Default value for "Passive" is false.
For father,
{
"DisplayName":"Father",
"Description":"",
"Image": ...
"CellType": "Person"
}
OR
{
"DisplayName":"Father",
"Description":"",
"Image": ...
"CellType": "Person"
"Passive": false
}
For child (who is not old enough to manage its data),
{
"DisplayName":"Child",
"Description":"",
"Image": ...
"CellType": "Person",
"Passive": true
}
"App.Home"
Management app that display client/business apps
Issue No.2: Basic rule is for app in this category is not to display any App.Admin.Cell.
Examples: HomeApp, HomeApp for Biz
{
"DisplayName":"HomeApp",
"Description":"ホームアプリセル",
"Image": ...
"CellType": "App.Admin.Cell"
}
"Other" or "Misc" (TBD)
Data subject which is an object.
Examples: car, apartment
"App.xxxx" (TBD)
Management software that can display all the details inside a unit cell or regular cell.
Examples: UnitManager, CellManager
"App.Personal"
Client app for data subject.
Examples: MyBoard, Calorie Smile, Wakaba Municipal Info Bank
{
"DisplayName": {
"en": "MyBoard",
"ja": "マイボード"
},
"Description": {
"en": "Demo application (MyBoard).",
"ja": "デモアプリ「マイボード」"
},
"Image": ...
"CellType": "App.Personal"
}
"App.Business"
Business app for data consumer/provider.
Examples: Wakaba Municipal Info Bank for Biz
{
"DisplayName": {
"en": "Wakaba Municipal Info Bank",
"ja": "わかば市情報バンク"
},
"Description": {
"en": "Admin application for Wakaba Municipal Info Bank.",
"ja": "わかば市情報バンクアプリセルです。"
},
"Image": ...
"CellType": "App.Business"
}
I think the newly introduced key "CellType" should rather be just "Type" because profile.json is a file for describing the profile of the Cell.
We should not probably introduce type value "passive". Instead it should be handled with another key, e.g. ("Passive": true or "Active": false) later. A person, organization or object.. may be passive, whereas other person, organization or object.. maybe active.
Word choice "App"/"Schema"/"Client" should be carefully considered. Also, the polymorphism may be taken into account, i.e. by introducing a convention like below, forward matching can extract super-class of the "Type" defined.
We should also probably consider the "sub-schema". (The new notion we discussed the other day to handle multiple views in same app for multiple user roles, e.g. teacher, student etc.)
Isn't that "Personal"/"Business" thing handled with sub-schema, rather than Cell's "Type"? I do not have my answer for this yet.
To avoid confusion, I prefer CellType because new comers might think that is application type when the cell is for an application.
Can't agree with you on the following names. Usually when management app has personal and business version, most modules are shared, therefore, they will most probably be hosted inside the same cell sharing the same profile.json. Client app makes sense because modules are not shared. Let's discuss it during Sprint meeting
Please check the revised proposal (comment No. 2) for management app like HomeApp.
The following commits solve this issue.
Since Personium does not have any way to determine which is which. I am working on a proposal to solve the following issues.
There is no automated way to determine which HomeApp the User (data subject, object, passive user) or organization (data consumer/provider) must use.
Currently either version of HomeApp can be logged in.
In HomeApp, the list of installed apps contains HomeApp itself and accidentaly got rendered.
Current hotfix is not to render the app with the same box name as the running app (HomeApp).