Skip to main content

13 posts tagged with "2021"

View All Tags

· One min read

機能改善

Item登録時の全文検索結果の問題を解消

APIからItem登録されたとき、全文検索結果にヒットしなかった問題を解消しました。

アクション利用制限ルール

Itemの条件によって利用できるアクションを制限できる機能を追加しました。

プロジェクト管理者がデータベース設定画面から、アクション制限ルールの設定画面で設定できます。

UpdateItem処理の性能改善

明細数が多い(100件以上)場合に、タイムアウトエラーが発生していた問題を解消しました。

· One min read

機能改善

新規ワークスペースの作成ボタン

新規ワークスペース作成の作成権限があるユーザーでも、+新規ワークスペース作成ボタンが表示されないことがあった問題を修正しました。

データベース参照型の復元

アプリケーションテンプレート復元時に、データベース参照型が復元されないことがある問題を修正しました。

Actionの表示・入力・必須のチェック

Actionの表示、入力、必須のチェックを自由にON/OFFできるようになりました。APIでAction情報取得時に、これらのフラグを利用することで、フィールド制御の自由度が向上しました。

ゼロ埋めするオプション

· One min read

機能改善

  • CSV追加インポートの時、group_idフィールドにグループDisplayIDを指定すると、該当Itemへグループアクセス権を付与できるようになりました。

  • CSV追加インポートが失敗した際、データベースを選択できなくなる問題を修正しました。

  • CSVアップデートのキーフィールドにNumber型を指定できるようになりました。

  • 同一ワークスペースへ、アプリケーションテンプレート復元した場合に、Itemへのグループアクセス権限とユーザへのロール付与設定も復元されるよう改善しました。

· One min read

機能改善

  • Hexabase管理画面のItem詳細表示時に、画面が崩れる(または[Object Object]のような表示となる)問題を修正しました。

  • 新しいカラーパレットが2種類追加されました。(グレー、ブラック)

カラーパレット

· One min read

機能改善

  • GetItemDetailsのレスポンスに、“created_by”, “updated_by”, “created_at”, "updated_at"を追加しました。

  • アプリケーションのテーマカラー変更時、ヘッダメニューの色がすぐに反映されない問題を修正しました。

  • ユーザー情報を登録・更新した際に、グループユーザー一覧へ即時に反映されないことがある不具合を修正しました。

セキュリティ対策強化

アクションごとに、API側での入力不可項目のエラーチェックを有効化にできるようになりました。

新しく作成されたワークスペースから有効となります。

既存のワークスペースへ適用する場合は、Hexabase社へお問合せください。

· 2 min read

機能改善

  • テンプレート復元時に、データベース参照型のデータが復元されないことがある問題を修正しました。

  • テンプレート保存時に、Itemの履歴データをふくめることができるようになりました。 テンプレート復元時に、自動採番型の枝番カウンターが復元されない問題を修正しました。

  • Item明細(related_ds_items)登録時の登録処理スピードが向上しました。

  • CSVインポート時、ワークスペース内のユーザ数が多い場合、パフォーマンスが劣化する問題を解消しました。

  • ワークスペース管理者登録時に、設定欄にユーザー名を入力してもワークスペース管理者として設定することができない問題を解消しました。

  • CLIから対象プロジェクトテンプレートデータをダウンロードすることが可能となりました。

· 6 min read

機能改善

いくつかの機能改善が適用されましたので、連絡いたします。

機能の追加が主であり、既存のプロントエンドアプリケーションへの影響はありません。

Item更新時の機能改善

  • force_updateフラグを、子アイテムにも影響させるようにしました。
  • 親Itemで、force_update=trueを指定すると、関連するItemの作成・更新時にもforce_updateが適用されるようになりました。

lookup item登録時、逆方向へのitem_linkを生成できるようになりました。

  • DB参照型フィールド型の設定画面にて、「逆方向へのリンクを作成する」チェックボックスを設置されました。
  • チェックをONにすると、参照元Item → DB参照先Item に加えて、参照元Item ← DB参照先Item の双方のデータリンクが作成されます。チェックが無い場合は、従来通り参照元Item → DB参照先Itemのみ作成されます。

Action Field Errorチェックについての改善

  • Actionの設定に従って、Item登録、更新時にフィールドごとにエラーチェックされるようになりました。

  • このエラーチェックは、新しく作成されたワークスペース、または、Hexabase社により指定された特定ワークスペースにのみ有効化されます。 (Item更新系APIを利用されているフロントエンドアプリとの互換性を担保するため、従来のワークスペース環境には適用されません)

  • 関連するItemに対して、実行したAcitonに対する入力データに不備がある場合、error配列内にエラーが返ります。

    • INVALID_VALUE (required field for this action) 必須入力フィールドにデータが入力されていません。
    • NO_PRIVILEGES(not arrowed to update this field for this action)入力時に非表示、または入力不可に設定されている項目にデータを入力しようとしました。
  • レスポンスの例

    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)

· 4 min read

ResetPassword APIの改善

ResetPassword API https://b-eee.github.io/linker-api-doc/docs/v0/userinfo/ResetPassword において、リダイレクト先の指定と、パラメータを渡すことが可能となりました。

本件はこちらのご要望への対応となります。貴重なご要望、ありがとうございました。 https://community.hexabase.com/t/topic/468/15

新規作成APIにて、新規作成用のActionIDを指定可能になりました

CreateItem APIにおいて、 https://b-eee.github.io/linker-api-doc/docs/v0/item-actions/CreateItem

従来は、デフォルトの固定Actionが自動的に利用されておりましたが、 今回action_idをPayloadにて渡すことで、特定のActionIDを利用して新規作成が利用できるようになりました。

注意)新規作成Actionのみ指定可能です。その他のActionIDを渡した場合は、エラー(400)となります。

本件は、こちらのご要望の対応となります。貴重なご要望、ありがとうございました。 https://community.hexabase.com/t/topic/429

データレポートの結果に、OptionやStatusなどの{IDと値} を含められるようになりました。

改善対象API https://b-eee.github.io/linker-api-doc/docs/v0/reports/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

· 6 min read

API:全文検索APIを追加

全文検索が可能な global_search API を追加しました。ワークスペース内のデータリソースに対して全文検索を行うことができます。

API:アクションスクリプトでPromiseを返却

ExecuteAction APIによりアクションを呼び出した場合、アクションスクリプトからPromiseを返却できるようになりました。

この機能により、API呼び出しの実行結果を元にして、エラー処理などを実現できるようになりました。

  • 現在、値を返却できる対象となるのは ActionScriptのPreScript です。PostScriptでは、値の返却はされません。
  • 結果は、resolve() / reject() により返します。

対象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": ""
}

CLI:コマンドエイリアスの追加

Hexabase CLI に、コマンドエイリアスを追加しました。このコマンドエイリアスは、Hexabase CLIのショートカットとして利用できます。

これらのコマンドは、引数として対象を記述しなくても、インタラクティブに選択できます。

主なコマンドエイリアスは、次の通りです。

ALIASESCOMMANDUsage
hx envhx contexts:getコンテキスト一覧を取得
hx usehx contexts:useコンテキストを選択
hx loginhx contexts:loginコンテキストにログイン
hx wshx workspaces:getワークスペース一覧を取得
hx selhx workspaces:useワークスペースを選択
hx pjhx projects:getプロジェクト/アプリケーションを選択
hx dshx datastores:getデータベースを選択
hx fdhx fields:getフィールド一覧を取得
hx sthx statuses:getステータス一覧を取得
hx achx actions:getアクション一覧を取得

このほかのコマンドエイリアスは、"hx help [Command]" またはhexabase-cli - npmで確認ください。

Hexabase CLI をアップデートするには、以下のコマンドを実行してください。

$ npm update -g hexabase-cli

機能拡張:自動採番型のゼロ埋め

自動採番型フィールドに「ゼロ埋めする」オプションを追加しました。これは、指定の桁数に満たない場合、上位の桁を自動的にゼロで埋める機能です。

この機能は、CSVアップデート・CSV追加インポートでも有効となります。新規インポートには対応しておりません。

「ゼロ埋めする」オプションを使用するには、次のように操作します。

  1. アイテム詳細を表示する
  2. 「項目を編集・追加する」を呼び出す
  3. 自動採番型フィールドの画面項目設定を呼び出す
  4. 画面項目の種類で、「ゼロ埋めする」オプションをオンにする

ゼロ埋めするオプション

機能改善:ワークスペースにリダイレクト設定を追加

従来、管理画面にアクセスする権限を持たないユーザーが管理画面にログインすると、ワークスペースの作成画面が表示され、ワークスペースの作成ができてしまっていました。

今回、このようなユーザーのリダイレクト設定を追加しました。

リダイレクト設定は、ワークスペース設定 > リダイレクト設定でおこないます。

リダイレクト設定

機能改善:画面項目に「検索インデックスの有無」オプションを追加しました

画面項目に、「検索インデックスの有無」オプションを追加して、データベースインデックスの作成有り無しを設定できるようにしました。

検索インデックスの有無

機能改善:ユーザーアカウント関連

  • RemoveUser APIを使用してユーザーを削除した場合、グループからユーザを削除しても、アプリケーションのロールが削除されない現象を解消しました。
  • 初期ユーザー登録画面とパスワードリセット画面で、パスワードポリシーを有効にしました。

機能改善:画面項目IDのエラーチェックを強化

画面項目IDの設定時、特定のIDや既存IDを利用できないようエラーチェックを強化しました。 画面項目のIDに以下の値は利用できません。

  • _id
  • a_id
  • access_keys
  • created_at
  • created_by
  • d_id
  • i_id
  • p_id
  • rev_no
  • status_id
  • title
  • unread

· 3 min read

Web UI:ユーザープロファイル設定にユーザーIDを表示する

管理画面のユーザープロファイル設定に、ユーザーIDを表示するようになりました。

ユーザープロファイル設定

Web UI:項目名の代わりに、Display IDを表示する

管理画面のデータベース設定に、以下のオプションを追加しました。

  • リストの項目と詳細画面に画面ID(display_id)を表示する
  • リストの項目にアイテム情報(item_id, rev_no, updated_at, created_at)を表示する

データベース設定

これにより、アイテム一覧とアイテム詳細で、項目名の代わりに、Display IDを表示できるようになりました。また、アイテム一覧に、アイテム情報(item_id, rev_no, updated_at, created_at)を表示できるようになりました。

Display IDを表示

アイテムのアクセスキーをAPIから操作する

アイテムのアクセスキーが、APIから操作できるようになりました。

  • APIからアクセスキーを追加/上書きする
  • アクション設定は無視して、APIからのみaccessKeyを追加できる

対象API

対象となるのは、以下のAPIです。

access_key_updatesオプション

option説明
overwritefalse(デフォルト):既存のキーにaccessKeysを追加します。
true:アイテムのaccessKeysを上書きします。
ignore_action_settingsfalse(デフォルト):設定から取得したキーに追加します。
true:ActionSettings(グループ、ロールの場合)とFieldSettings(ユーザーの場合)を無視します。
apply_related_dsfalse(デフォルト):指定アイテムに適用します。
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"]
},