機能改善
Item登録時の全文検索結果の問題を解消
APIからItem登録されたとき、全文検索結果にヒットしなかった問題を解消しました。
アクション利用制限ルール
Itemの条件によって利用できるアクションを制限できる機能を追加しました。
プロジェクト管理者がデータベース設定画面から、アクション制限ルールの設定画面で設定できます。
UpdateItem処理の性能改善
明細数が多い(100件以上)場合に、タイムアウトエラーが発生していた問題を解消しました。
CSV追加インポートの時、group_idフィールドにグループDisplayIDを指定すると、該当Itemへグループアクセス権を付与できるようになりました。
CSV追加インポートが失敗した際、データベースを選択できなくなる問題を修正しました。
CSVアップデートのキーフィールドにNumber型を指定できるようになりました。
同一ワークスペースへ、アプリケーションテンプレート復元した場合に、Itemへのグループアクセス権限とユーザへのロール付与設定も復元されるよう改善しました。
Hexabase管理画面のItem詳細表示時に、画面が崩れる(または[Object Object]のような表示となる)問題を修正しました。
新しいカラーパレットが2種類追加されました。(グレー、ブラック)
GetItemDetailsのレスポンスに、“created_by”, “updated_by”, “created_at”, "updated_at"を追加しました。
アプリケーションのテーマカラー変更時、ヘッダメニューの色がすぐに反映されない問題を修正しました。
ユーザー情報を登録・更新した際に、グループユーザー一覧へ即時に反映されないことがある不具合を修正しました。
アクションごとに、API側での入力不可項目のエラーチェックを有効化にできるようになりました。
新しく作成されたワークスペースから有効となります。
既存のワークスペースへ適用する場合は、Hexabase社へお問合せください。
テンプレート復元時に、データベース参照型のデータが復元されないことがある問題を修正しました。
テンプレート保存時に、Itemの履歴データをふくめることができるようになりました。 テンプレート復元時に、自動採番型の枝番カウンターが復元されない問題を修正しました。
Item明細(related_ds_items)登録時の登録処理スピードが向上しました。
CSVインポート時、ワークスペース内のユーザ数が多い場合、パフォーマンスが劣化する問題を解消しました。
ワークスペース管理者登録時に、設定欄にユーザー名を入力してもワークスペース管理者として設定することができない問題を解消しました。
CLIから対象プロジェクトテンプレートデータをダウンロードすることが可能となりました。
いくつかの機能改善が適用されましたので、連絡いたします。
機能の追加が主であり、既存のプロントエンドアプリケーションへの影響はありません。
Actionの設定に従って、Item登録、更新時にフィールドごとにエラーチェックされるようになりました。
このエラーチェックは、新しく作成されたワークスペース、または、Hexabase社により指定された特定ワークスペースにのみ有効化されます。 (Item更新系APIを利用されているフロントエンドアプリとの互換性を担保するため、従来のワークスペース環境には適用されません)
関連するItemに対して、実行したAcitonに対する入力データに不備がある場合、error配列内にエラーが返ります。
レスポンスの例
HTTP 400
{
"error_code": "INVALID_VALUE"
"description": "input validation error. datastore:TODO-SAMPLE action:(default edit) ",
"error": [
{
"description": "d_id: 611e67c9720bbecb02013e64 field: Category(f_id:611e67c9485729c3fde24788), value: (not specified)",
"error": "required field for this action 611e67ca485729c3fde2479f (show,update,required)=(true,true,true)",
"error_code": "INVALID_VALUE",
"error_level": "ERROR"
},
{
"description": "d_id: 6121fccd27ef72f577ad28bc field: Number(f_id:6121fd24170986e3a7cfcb9b), value: 111",
"error": "not arrowed to update this field for this action 6121fcce170986e3a7cfcb98 (show,update,required)=(false,false,false)",
"error_code": "NO_PRIVILEGES",
"error_level": "ERROR"
}
]
}
### CSVインポート時の改善
インポートが失敗した場合、画面から該当データを手動で削除可能となるよう修正しました。
- 以前は、インポート時に失敗し異常終了したデータストアは画面には表示されず、1日後にバックエンドで削除される仕様となっておりました。今回、失敗DBを画面に表示されるようにし、画面から管理者が削除できるように変更しました。
- 合わせて、データストアのdiplay_idの検索時に、取込失敗DBもヒットするように修正した。(failedフラグが立っていた場合でも、存在しているDBとして認識するようになりました)
- インポートに失敗したデータストアを選択できなくなる不具合も同時に修正しました。
### ActionScript についての改善
Pre/Post scriptへAPIから引数Objectを渡せるようになりました。
- Itemの新規・更新APIのPayload にas_params を追加し、任意のデータを指定できます。
- ActionScript内で、以下のように `as_params` パラメータを経由してデータを取得可能となります。
const asParams = data.as_params;
logger.info(param is ${asParams.someData}
);
- `exec_children_post_procs` へ true を渡すことで、ネストされたItemに対して、Post ActionScript を呼び出し可能となりました。related_ds_items内の新規・更新アクションに対して、ActionScriptが実行されます。
#### 注意
- related_ds_itemsに対して、PreActionScriptはコールされません。
- related_ds_items内については、Post ActionScriptがコールされます。
### Files > UploadFileについての改善
- filenameとfileのみでファイル登録を可能となりました。
- ファイルアップロードで、field_id,item_id等を省略可能となります
- 登録、取得、削除の3APIを追加し、POST・GET・DELETEメソッドが追加されました。
- [Files > UploadFile API](https://apidoc.hexabase.com/docs/v0/files/UploadFile)
ResetPassword APIにおいて、リダイレクト先の指定と、パラメータを渡すことが可能となりました。
本件はこちらのご要望への対応となります。貴重なご要望、ありがとうございました。 https://community.hexabase.com/t/topic/468/15
CreateItem APIにおいて、従来はデフォルトの固定Actionが自動的に利用されておりましたが、 今回action_idをPayloadにて渡すことで、特定のActionIDを利用して新規作成が利用できるようになりました。
注意)新規作成Actionのみ指定可能です。その他のActionIDを渡した場合は、エラー(400)となります。
本件は、こちらのご要望の対応となります。貴重なご要望、ありがとうございました。 https://community.hexabase.com/t/topic/429
改善対象API:GetReportDataByConditions
従来、選択肢型などのデータレポートの結果にOptionIDなどのIDは含まれず、IDから変換された値のみが返却されていました。 この場合、選択肢IDを利用したくてもプログラムから利用することができませんでした。
今回の変更では、Payloadに
"return_id_value_results": true,
というフラグを渡すことで、ID-Value値をObjectで返却できるようになりました。 以下例に示すとおり、従来返却される値とは別に、
"id_value_results": { ... }
という形で、該当フィールドIDごとに ID-ValueのObjectが返却されるようになります。
{
"AssigneeText": "X",
"Category": "A",
"Checkbox": "22",
"DateOld": "2021/05/26",
"DateTime1": "2021-05-27T18:38:13Z",
"DueDate": "2016/01/22",
"Lookup1": "",
"Number": 11,
"Radio": "B",
"Title": "タスクE",
"UserType": "",
"i_id": "5f267f1628dc5c6988bc2fee",
"id_value_results": { // <---- 該当するフィールドに、選択肢型またはステータス、またはユーザー型がある場合、付加されます
"Category": {
"id": "A",
"value": "A"
},
"Checkbox": [ // <---- Checkboxの場合、複数選択肢に対する配列が返ります
{
"id": "3ce8c186-89a6-455c-8b80-f962333b3eb0",
"value": "22"
}
],
"Radio": {
"id": "OptionB",
"value": "B"
},
"status1": {
"id": "InReview",
"value": "In Review"
}
},
"rev_no": 24,
"status1": "In Review"
},
以下、フィールド型ごとに、返却される形が変わります。
選択肢型、ラジオ型、ステータスについては、id/valueを含むObject型で返却されます。
"id_value_results": {
"フィールドID": {
id:"(選択肢などのdisplay_id)",
value: "(選択肢の値)"
},
...
}
チェックボックス型、User型については、複数の候補が含まれるため、Objectの配列で返却されます。
"id_value_results": {
"フィールドID": [
{
id:"(選択肢などのdisplay_id)",
value: "(選択肢の値)"
},
{
id:"(選択肢などのdisplay_id)",
value: "(選択肢の値)"
},
...
],
...
}
こちらは、以下ご要望の対応となります。貴重なご要望、ありがとうございました。 https://community.hexabase.com/t/topic/477
全文検索が可能な global_search API を追加しました。ワークスペース内のデータリソースに対して全文検索を行うことができます。
ExecuteAction APIによりアクションを呼び出した場合、アクションスクリプトからPromiseを返却できるようになりました。
この機能により、API呼び出しの実行結果を元にして、エラー処理などを実現できるようになりました。
対象API
サンプルコードも更新されています
(async function(data) {
return new Promise((resolve, reject) => {
const appId = "TestApp";
const datastoreId = "TODO-SAMPLE"
logger.log("Process starting...")
// first call
const url = `api/v0/applications/${appId}/datastores/${datastoreId}/items/search`;
const payload = {
use_display_id: true,
omit_fields_data: true,
conditions: [],
per_page: 1,
page: 1
}
callAPIAsync('POST', url, payload).then(res => {
logger.log("Proc1 Called")
// next call
const url = `api/v0/applications/${appId}/datastores/${datastoreId}/items/search`;
const payload = {
use_display_id: true,
omit_fields_data: true,
conditions: [],
per_page: 1,
page: 1
}
return callAPIAsync('POST', url, payload) // you can return promise
}).then(res => {
logger.log("Proc2 Called")
// call resolve() if you want to proceed
resolve();
}).catch(e => {
logger.error("ERR !!")
// call reject() if you want to stop action execution
reject({
"result": "Stopped",
"error" : "error messages"
}); // result object will be returned to Hexabase's API result
});
});
})
各APIの返却値(PreActionScriptで、reject()をコールした場合)
{
"details": {
"result": {
"error": "error messages",
"result": "Stopped"
},
"status": "REJECTED",
"stop_execution": true
},
"error": ""
}
Hexabase CLI に、コマンドエイリアスを追加しました。このコマンドエイリアスは、Hexabase CLIのショートカットとして利用できます。
これらのコマンドは、引数として対象を記述しなくても、インタラクティブに選択できます。
主なコマンドエイリアスは、次の通りです。
ALIASES | COMMAND | Usage |
---|---|---|
hx env | hx contexts:get | コンテキスト一覧を取得 |
hx use | hx contexts:use | コンテキストを選択 |
hx login | hx contexts:login | コンテキストにログイン |
hx ws | hx workspaces:get | ワークスペース一覧を取得 |
hx sel | hx workspaces:use | ワークスペースを選択 |
hx pj | hx projects:get | プロジェクト/アプリケーションを選択 |
hx ds | hx datastores:get | データベースを選択 |
hx fd | hx fields:get | フィールド一覧を取得 |
hx st | hx statuses:get | ステータス一覧を取得 |
hx ac | hx actions:get | アクション一覧を取得 |
このほかのコマンドエイリアスは、"hx help [Command]" またはhexabase-cli - npmで確認ください。
Hexabase CLI をアップデートするには、以下のコマンドを実行してください。
$ npm update -g hexabase-cli
自動採番型フィールドに「ゼロ埋めする」オプションを追加しました。これは、指定の桁数に満たない場合、上位の桁を自動的にゼロで埋める機能です。
この機能は、CSVアップデート・CSV追加インポートでも有効となります。新規インポートには対応しておりません。
「ゼロ埋めする」オプションを使用するには、次のように操作します。
従来、管理画面にアクセスする権限を持たないユーザーが管理画面にログインすると、ワークスペースの作成画面が表示され、ワークスペースの作成ができてしまっていました。
今回、このようなユーザーのリダイレクト設定を追加しました。
リダイレクト設定は、ワークスペース設定 > リダイレクト設定でおこないます。
画面項目に、「検索インデックスの有無」オプションを追加して、データベースインデックスの作成有り無しを設定できるようにしました。
画面項目IDの設定時、特定のIDや既存IDを利用できないようエラーチェックを強化しました。 画面項目のIDに以下の値は利用できません。
管理画面のユーザープロファイル設定に、ユーザーIDを表示するようになりました。
管理画面のデータベース設定に、以下のオプションを追加しました。
これにより、アイテム一覧とアイテム詳細で、項目名の代わりに、Display IDを表示できるようになりました。また、アイテム一覧に、アイテム情報(item_id, rev_no, updated_at, created_at)を表示できるようになりました。
アイテムのアクセスキーが、APIから操作できるようになりました。
対象となるのは、以下のAPIです。
option | 説明 |
---|---|
overwrite | false(デフォルト):既存のキーにaccessKeysを追加します。 true:アイテムのaccessKeysを上書きします。 |
ignore_action_settings | false(デフォルト):設定から取得したキーに追加します。 true:ActionSettings(グループ、ロールの場合)とFieldSettings(ユーザーの場合)を無視します。 |
apply_related_ds | false(デフォルト):指定アイテムに適用します。 true:すべてのrelated_ds_items(new、update)にkey_updatesを適用します |
groups_to_publish | 公開したいグループをdisplay_idで指定します。 [Important!!] ログインユーザーは、自分が持っているキーを追加できます。特権がない場合は、エラー結果でWARNINGを返しますが、有効なキーのみの追加に進みます |
roles_to_publish | 公開したいロールをdisplay_idで指定します。 [Important!!] ログインユーザーは、自分が持っているキーを追加できます。特権がない場合は、エラー結果でWARNINGを返しますが、有効なキーのみの追加に進みます |
users_to_publish | 公開したいユーザーのUserIDを指定します。ワークスペースに存在しない場合はエラーを返します。 |
UpdateItem APIに記述した access_key_updates オプションの例を以下に示します。
"access_key_updates": {
"overwrite": false,
"ignore_action_settings": true,
"apply_related_ds": true,
"groups_to_publish": ["AAA", "BBB"],
"roles_to_publish": ["ADMIN", "Tester"],
"users_to_publish": ["5fc9b4aaaa39557110839cf7", "unknown-user"]
},