API Document_jp

Hexabase APIの解説

本ドキュメントの目的

本ドキュメントは、Hexabaseプラットホームを外部から利用するAPIについて説明しています。

バージョン

Version 0

事前準備

  • HexabaseプラットホームのベースURIを確認します。ベースURIは、テナントごとに異なります

  • Hexabaseプラットホームでユーザー登録します

APIトークンの取得

  • 本APIでは、ログインAPIでユーザーを指定します。各APIは、このユーザが持つ権限に従って実行されます

  • 本APIを使用するには、最初にログインAPIを実行して、トークンを取得します

  • ログインAPIを除く各APIの実行時には、HTTPリクエストヘッダに以下のようにトークンを指定します

Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(発行したトークン)

用語の説明

画面ID(display_id)

  • 画面ID(display_id)とは、Hexabase設定画面から指定可能なIDのことを指します。

  • 画面ID(display_id)に対応しているAPIは、app-id, datastore-id, field-id など、URLやPayloadの一部に画面から入力したIDを指定することが可能です。

API一覧

認証関連API

本APIを使用するには、最初にログインAPIを実行して、トークンを取得します

ログイン関連API

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

1

Login

ログイン

POST

/api/v0/login

システムへログインする

v0

-

60

Logout

ログアウト

POST

/api/v0/users/logout

システムからログアウトする

v0

-

ワークスペース関連API

「ワークスペース」は、Hexabaseのアプリケーションをまとめる領域です。業務の種類や内容に合わせてワークスペースを用意して、複数の業務アプリケーションをまとめておきます。

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

2

WorkspaceList

ワークスペース一覧

GET

/api/v0/workspaces

ワークスペースの一覧を取得する

v0

-

3

SelectWorkspace

ワークスペース選択

POST

/api/v0/workspaces/:workspace-id/select

現在ワークスペースを選択する

v0

-

グループ関連API

「グループ」は、ワークスペース内に1つツリー構造で存在するし、ユーザーを役割りに応じてまとめる機能です。グループへロールを付与することもできます。

グループ一覧の取得

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

49

GetGroup

グループ情報取得

GET

/api/v0/groups/:group-id

指定したグループ情報とその配下のグループ一覧を取得

v0

-

4

GetGroupTree

グループツリー情報取得

GET

/api/v0/grouptree

ワークスペース内のグループ情報をJSONツリー形式で取得

v0

-

グループの登録、変更、削除

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

5

CreateGroup

新規グループ作成

POST

/api/v0/workspaces/:workspace-id/groups/:parent-group-id

指定グループ配下に新規でグループを作成

v0

-

44

CreateTopGroup

新規グループ作成(第1階層)

POST

/api/v0/workspaces/:workspace-id/groups

第1階層に新規グループを作成

v0

-

6

UpdateGroup

グループ更新

PUT

/api/v0/groups/:group-id

指定したグループ情報を更新する

v0

-

7

DeleteGroup

グループ削除

DELETE

/api/v0/groups/:group-id

指定したグループを削除する

v0

-

グループへのロール設定

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

63

UpdateGroupRoles

グループロール更新

POST

/api/v0/grouproles/:group-id

グループにひも付くロールをすべて削除し、新規付与(洗い変え)する

v0

-

64

AddGroupRoles

グループロール追加

PUT

/api/v0/grouproles/:group-id

グループにロールを追加する

v0

-

ユーザー関連API

「ユーザー」はEmailアドレスをIDとした、ログイン可能なアカウントです。必ずワークスペース内のいずれかのグループに属します。Hexabaseへユーザーを追加するには、グループへユーザーを登録した後に、ワークスペースへ招待する必要があります。

ログインユーザー情報

ログインしているユーザーに関する情報を取得します。

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

43

GetUserInfo

ユーザー情報取得

GET

/api/v0/userinfo

ユーザーの関連情報取得

v0

-

61

UpdateUserInfo

ユーザー情報更新

PUT

/api/v0/userinfo

ユーザー名、情報の更新

v0

-

パスワード変更

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

56

ResetPassword

パスワード初期化リクエスト

POST

/api/v0/users/password/forgot

ログイン前、パスワード初期化 開始

v0

-

57

SetNewPassword

パスワード再登録

PUT

/api/v0/users/password/forgot

ログイン前、パスワード初期化 パスワードを変更

v0

-

58

ValidatePassword

パスワード変更確認

GET

/api/v0/users/password/validate

ログイン前、パスワード初期化 パスワー変更状態の確認

v0

-

59

SetPassword

パスワード変更登録

PUT

/api/v0/users/password

ログイン後、パスワード変更

v0

-

ユーザー一覧

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

46

GetUsersInGroup

グループ内ユーザー取得

GET

/api/v0/groups/:group-id/users

指定されたグループのユーザー一覧の取得

v0

-

50

GetUsersInWorkspace

グループ内ユーザー取得

GET

/api/v0/workspaces/:workspace-id/users

指定されたワークスペースのユーザー一覧の取得

(old)

-

10

GetAllUsersInWorkspace

ワークスペース全ユーザー取得

GET

/api/v0/users/all/g/:group-id

ワークスペース内全ユーザー一覧の取得

v0

-

ユーザーの追加、削除

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

47

AddUser

ユーザー追加

POST

/api/v0/users

グループに新規ユーザーを作成

v0

-

51

RemoveUser

ユーザー削除

DELETE

/api/v0/users

グループからユーザーを削除

v0

-

ユーザーの招待~初期登録

ユーザーをワークスペースへ招待するには、登録されたユーザーに対して招待メールを送信(UserInvite)します。 受け取ったメールに含まれるリンクをクリックすることでユーザー登録の確認ページへ遷移させます。遷移先画面では確認ID(ConfirmID)をもとにユーザー情報を取得(ConfirmRegistration)し、ユーザー情報を登録する(RegisterUser)ことではじめてユーザーが作成されます。

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

52

UserInvite

ユーザー招待

POST

/api/v0/userinvite

ユーザーを招待

v0

-

53

UserRegistration

初回ユーザー登録

POST

/api/v0/users/registration

ユーザーの初期登録用リクエスト

v0

-

54

ConfirmRegistration

ユーザー情報確認

GET

/api/v0/users/registration/confirm

ConfirmIDからユーザーの初期登録情報の確認

v0

-

55

RegisterUser

ユーザー初期登録

POST

/api/v0/users/registration/confirm

ユーザーの初期登録、パスワード登録

v0

-

ユーザーへのロール設定

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

65

AddRoleToUser

ユーザーへロール付与

POST

/api/v0/applications/:project-id/userroles

ユーザーにアプリケーションのロールを付与する

v0

-

66

RemoveRoleFromUser

ユーザからロールを削除

DELETE

/api/v0/applications/:project-id/userroles

ユーザーからアプリケーションのロールを外す

v0

-

CSVデータによるユーザー一括登録

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

9

UserImport

POST

/api/v0/userimport

ユーザーをCSVで一括インポート

α版

-

アプリケーション関連API

Hexabaseでは、「アプリケーション」ごとに、データベース・データレポート・ダッシュボードなどをまとめています。新しくワークプレースを作成すると「新しいアプリケーション」という名前のアプリケーションが作成されています。 アプリケーション内には複数のデータベース(データテーブル)が存在します。

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

11

GetApplicationsAndDatastores

アプリケーションとデータベース一覧

GET

/api/v0/workspaces/:workspace-id/applications

アプリケーション一覧のとデータストア一覧を取得

v0

-

フィールド関連API

Hexabaseでは、「アイテム」のカラムを「フィールド」または「画面項目」と呼びます。

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

15

GetDatastoreFields

フィールド一覧

GET

/api/v0/applications/:app-id/datastores/:datastore-id/fields

フィールド一覧を取得

v0

アイテム関連API

Hexabaseでは、データベースの各データを「アイテム」と呼びます。表の横1行がアイテムになります。一般的なRDBのレコードに相当します。

アイテムの検索、登録、更新、削除

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

19

ItemList

アイテム一覧

POST

/api/v0/applications/:app-id/datastores/:datastore-id/items/search

アイテム一覧を取得

v0

20

CreateItem

アイテム新規登録

POST

/api/v0/applications/:app-id/datastores/:datastore-id/items/new

新規アイテムを作成する

v0

21

UpdateItem

アイテム更新

POST

/api/v0/applications/:app-id/datastores/:datastore-id/items/edit/:item-id

アイテムを編集する

v0

22

DeleteItem

アイテム削除

DELETE

/api/v0/applications/:app-id/datastores/:datastore-id/items/delete/:item-id

1アイテムを削除する

v0

23

DeleteItemByConditions

条件指定してアイテム削除

DELETE

/api/v0/applications/:app-id/datastores/:datastore-id/items/delete

条件を指定してアイテムを一括削除する

v0

12

GetNewActionMenu

新規登録アクションの一覧

GET

/api/v0/datastores/:datastore-id/new-action

新規アイテム作成アクション一覧を取得

v0

-

48

CreateItemID

新規アイテムID取得

POST

/api/v0/datastores/:datastore-id/items/create-id

新規アイテム作成用のaction_idを取得

v0

-

33

CreateItemWithItemID

item_idを指定して新規アイテムを作成

POST

/api/v0/items/:item-id/new-actions/:action-id

action_idを指定して、新規作成アクションを実行(No.69の後に実行)

v0

-

添付ファイル関連API

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

29

UploadFile

添付ファイルUpload

POST

/api/v0/items/:item-id/fields/:field-id/attachments

添付ファイルフィールドにファイルをアップロード

v0

-

30

DeleteFile

添付ファイル削除

DELETE

/api/v0/items/:item-id/fields/:field-id/attachments/:attachment-id

添付ファイルフィールドのファイルを削除

v0

-

35

GetFile

ファイルデータの取得

GET

/api/v0/files/:file-id

添付ファイルデータを取得

v0

-

アイテム詳細、アクション関連

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

27

GetItemDetails

アイテム詳細

GET

/api/v0/datastores/:datastore-id/items/:item-id

アイテムの詳細情報、アクションリストを取得

v0

-

13

GetActionFields

アクション登録フォーム取得

GET

/api/v0/datastores/:datastore-id/actions/:action-id/fields

アクションで利用可能なフィールド情報を取得する

v0

-

62

ExecuteAction

アクションの実行

POST

/api/v0/applications/:project-id/datastores/:datastore-id/items/action/:action-id

指定アクションを実行する

v0

31

ExecuteActionByActionID

アクションの実行

POST

/api/v0/items/:item-id/actions/:action-id

アクションを実行

v0

-

67

ExecuteBulkAction

条件を指定してアクションを実行

POST

/api/v0/applications/:project-id/datastores/:datastore-id/items/bulkaction/:action-id

指定アクションを実行する

v0

アイテムの関連

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

28

GetLinkedItems

関連アイテム取得

GET

/api/v0/datastores/:datastore-id/items/:item-id/links/:linked-datastore-id"

アイテムに関連するアイテム一覧を取得

v0

-

24

AddItemLink

アイテムリンク作成

POST

/api/v0/applications/:app-id/datastores/:datastore-id/items/addlink/:item-id

関連アイテムとのリンクを追加

v0

25

UpdateItemLink

アイテムリンク更新

POST

/api/v0/applications/:app-id/datastores/:datastore-id/items/updatelink/:item-id

関連アイテムとのリンクを更新

v0

26

DeleteItemLink

アイテムリンク削除

DELETE

/api/v0/applications/:app-id/datastores/:datastore-id/items/dellink/:item-id

関連アイテムとのリンクを削除

v0

アイテムの履歴

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

34

GetItemHistories

アイテム履歴取得

GET

/api/v0/datastores/:datastore-id/items/:item-id/histories

履歴を取得

v0

-

45

PostItemComment

アイテムコメント投稿

POST

/api/v0/datastores/:datastore-id/items/histories

コメント履歴を登録

v0

-

CSVデータインポート関連API

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

16

ImportItems

アイテムCSVインポート

POST

/api/v0/applications/:project-id/datastores/:datastore-id/import

CSVデータをデータベースへインポート

v0

17

GetImportResults

インポート結果取得

GET

/api/v0/datastores/:datastore-id/import/:id

CSVインポートの結果取得

v0

-

データレポート関連API

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

37

GetReportData

データレポート取得

GET

/api/v0/applications/:project-id/reports/:report-id

レポートデータの取得

v0

38

GetReportConditions

データレポート検索条件取得

GET

/api/v0/applications/:project-id/reports/:report-id/conditions

レポートの検索条件を取得

v0

39

GetReportDataByConditions

条件指定してデータレポート取得

POST

/api/v0/applications/:project-id/reports/:report-id/filter

条件を指定してレポートデータを取得

v0

チャート(ダッシュボード)関連API

No

API Name

API名

Method

URI

目的

version

画面ID(display_id)への対応

40

GetChartData

チャートデータ取得

GET

/api/v0/applications/:project-id/charts/:chart-id

チャートデータの取得

v0

41

GetChartConditions

チャート検索条件取得

GET

/api/v0/applications/:project-id/charts/:chart-id/conditions

チャートの検索条件を取得

v0

42

GetChartDataByConditions

条件指定してチャートデータ取得

POST

/api/v0/applications/:project-id/charts/:chart-id/filter

条件を指定してチャートデータを取得

v0

API仕様詳細

認証関連API

本APIを使用するには、最初にログインAPIを実行して、トークンを取得します

Login

ログイン

Description

Hexabaseにログインして、トークンを取得します

Method

POST

Request URL Format

/api/v0/login

Payload

Content-Type : application/json

{
"email": "Hexabaseに登録してあるユーザーのメールアドレス",
"password": "パスワード"
}

Request URL Sample

POST https://api.xxx.com/api/v0/login

Response Sample

{
"token": "xxxxxxxxx"
}

Logout

ログアウト

Description

トークンを使用しログアウトを行う

Method

POST

Request URL Format

/api/v0/users/logout

Payload

Content-Type : application/json

Request URL Sample

POST https://api.xxx.com/api/v0/users/logout

Response Sample

null

ワークスペース関連API

「ワークスペース」は、Hexabaseのアプリケーションをまとめる領域です。業務の種類や内容に合わせてワークスペースを用意して、複数の業務アプリケーションをまとめておきます。

WorkspaceList

ワークスペース一覧

Description

ワークスペースの一覧を取得します

Method

GET

Request URL Format

/api/v0/workspaces

Params

特になし

Request URL Sample

GET https://api.xxx.com/api/v0/workspaces

Response Sample

{
"workspaces": [
{
"workspace_id": "582b26d7fb90a15e0c24ad80",
"workspace_name": "Testワークスペース"
},
{
"workspace_id": "58dfcd20fbfcba39c881021e",
"workspace_name": "ABC株式会社"
},
{
"workspace_id": "58ca3597cce5fe3ea0a42fa8",
"workspace_name": "XXXX部門"
},
{
"workspace_id": "58ca3211cce5fe2e84446cd3",
"workspace_name": "○○○プロジェクト"
},
]
}

SelectWorkspace

ワークスペース選択

Description

利用したいワークスペースを選択します

Method

POST

Request URL Format

/api/v0/workspaces/:workspace-id/select

URL Params

workspace-id : ワークスペースID

Request URL Sample

POST https://api.xxx.com/api/v0/workspaces/582b26d7fb90a15e0c24ad80/select

Response Sample

null

グループ関連API

「グループ」は、ユーザーを役割に応じてまとめる機能です。

GetGroup

グループ情報取得

Description

指定したグループ情報とその配下のグループ一覧を取得

Method

GET

Request URL Format

/api/v0/groups/:group-id
  • :group-id は省略可。省略すると、TOPグループの情報を返す。

Request URL Sample

GET https://api.xxx.com/api/v0/groups

Response Sample

{
"error": "",
"group": {
"g_id": "親グループID",
"group_id": "親グループのDISPLAY_ID",
"name": "親グループ名",
"index": 0 //("親グループ位置")
},
"children": [], //("配下グループのグループID")
"count": 0 //("親グループの配下数")
}

Request Sample2

GET https://api.xxx.com/api/v0/groups/5c5fd6c084f4be2574e2bcb2

Response Sample2

{
"error": "",
"group": {
"g_id": "親グループID",
"group_id": "親グループのDISPLAY_ID",
"name": "親グループ名",
"index": 0 //("親グループ位置")
},
"children": [
{
"g_id": "配下グループID",
"group_id": "配下グループのDISPLAY_ID",
"name": "配下グループ名, 例:事業部A2",
"index": 0 //("配下グループ位置")
},
{
"g_id": "配下グループID",
"group_id": "配下グループのDISPLAY_ID",
"name": "配下グループ名, 例:事業部A2",
"index": 1//("配下グループ位置")
}
],
"count": 2 //("親グループの配下数"
}

GetGroupTree

グループツリー情報取得

Description

ワークスペース内のグループをツリー形式のJSONにて取得します

Method

GET

Request URL Format

/api/v0/grouptree

Params

特になし

Request URL Sample

GET https://api.xxx.com/api/v0/grouptree

Response Sample

{
"error": null,
"result": [
{
"childGroups": [
{
"childGroups": [
{
"childGroups": [],
"display_id": "addfaa",
"id": "5972e630cce5fe6c280cd242",
"name": "test",
"show_child": true
}
],
"display_id": "ssss",
"id": "5972ebebcce5fe6c280cd246",
"name": "sss",
"show_child": true
},
{
"childGroups": [
{
"childGroups": [
{
"childGroups": [],
"display_id": "etsetse",
"id": "5972d10dcce5fe6c280cd240",
"name": "test",
"show_child": true
}
],
"display_id": "aaa",
"id": "593b9674fbfcba27707e2345",
"name": "aaaa",
"show_child": true
}
],
"display_id": "TEST_G",
"id": "593b9660fbfcba27707e2343",
"name": "テスト用グループ2",
"show_child": true
},
{
"childGroups": [
{
"childGroups": [
{
"childGroups": [],
"display_id": "TEST333",
"id": "593b9688fbfcba27707e2347",
"name": "test3",
"show_child": true
}
],
"display_id": "123",
"id": "593a7ee5cce5fe9fc0192326",
"name": "下の階層",
"show_child": true
}
],
"display_id": "583278f6fb90a122e2646527",
"id": "583278f6fb90a122e2646527",
"name": "NEW",
"show_child": true
}
],
"display_id": "582b26d8fb90a15e0c24ad81",
"id": "582b26d8fb90a15e0c24ad81",
"name": "WORKSPACE.DEFAULT_GROUP_NAME",
"show_child": true
}
]
}

CreateGroup

新規グループ作成

Description

新規でグループを指定したグループの配下に作成する

Method

POST

Request URL Format

/api/v0/groups/:parent-group-id

URL Params

"parent-group-id": 必須 指定したグループの配下に新規グループを作成

Payload

Content-Type : application/json

{
"name" : "グループ名", // 必須
"display_id": "グループID"  // 必須
}

Request URL Sample

POST https://api.xxx.com/api/v0/groups/:parent-group-id

Response Sample

{
"group": {
"access_key": "作成されたグループのアクセスキー",
"created_at": "作成時間 年-月-日時刻",
"display_id": "グループのDisplay_ID",
"g_id": "作成されたグループID",
"id": "作成されたグループID",
"index": 0, //("int このグループレイヤーのindex位置")
"is_root": false, //("bool グループツリー上最上位に位置される場合true")
"name": "グループ名"
},
"groupTree_datastores_res": null // ("配下にグループ有るかどうか")
}

CreateTopGroup

新規グループ作成(第1階層)

Description

グループの第1階層に、新しいグループを登録します。登録したグループは、ツリーの直下に配置されます。

Method

POST

Request URL Format

/api/v0/workspaces/:workspace-id/groups

URL Params

workspace-id : ワークスペースID

Payload

Content-Type : application/json

{
"name": "グループ名",
"display_id": "グループを識別するID(組織コードなど)"
}

Request URL Sample

POST https://api.xxx.com/api/v0/workspaces/582b26d7fb90a15e0c24ad80/groups

Response Sample

{
"group": {
"name": "グループ名"
"id": "59bf3b300e24791418da1aa1",
"g_id": "59bf3b300e24791418da1aa1",
"access_key": "59bf3b300e24791418da1aa2",
"display_id": "グループを識別するID(組織コードなど)",
"created_at": "2017-09-18T12:19:12.007119961+09:00",
}
}

UpdateGroup

グループの更新

Description

指定したグループ名を更新します。

Method

PUT

Request URL Format

/api/v0/workspaces/:workspace-id/groups/:group-id

URL Params

workspace-id : ワークスペースID
group-id : グループID

Content-Type : application/json

{
"name": "グループ名→new name",
"display_id": "グループを識別するID(組織コードなど)"
}

Request URL Sample

PUT https://api.xxx.com/api/v0/workspaces/582b26d7fb90a15e0c24ad80/groups/59bf3b300e24791418da1aa1

Response Sample

null

DeleteGroup

グループを削除

Description

指定したグループ名を削除します

Method

DELETE

Request URL Format

/api/v0/groups/:group-id

URL Params

group-id : グループID

Content-Type : application/json

{
"workspace-id": "グループ名→new name",
"group-id": "グループを識別するID(組織コードなど)"
}

Request URL Sample

DELETE https://api.xxx.com/api/v0/groups/59bf3b300e24791418da1aa1

Response Sample

null

UpdateGroupRoles

グループロール更新

Description

グループにひも付くロールをすべて削除し、新規付与(洗い変え)する

Method

POST

Request URL Format

/api/v0/grouproles/:group-id

Payload

Content-Type : application/json

{
"group_roles":
[
{
"app_id":"アプリケーションディスプレイID-1",
"role_id":"ロールディスプレイID-1"
},
{
"app_id":"アプリケーションデイスプレイID-2",
"role_id":"ロールディスプレイID-2"
}
]
}

Request URL Sample

POST https://api.xxx.com/api/v0/grouproles/:group-id

Response Sample

{} //空のオブジェクトが返ってくる

AddGroupRoles

グループロール追加

Description

グループにロールを追加する(既存ロールは削除されない)

Method

PUT

Request URL Format

/api/v0/grouproles/:group-id

URL Params

group-id : グループID

Content-Type : application/json

{
"group_roles":
[
{
"app_id":"追加対象のアプリケーションディスプレイID-1",
"role_id":"追加対象のロールディスプレイID-1"
},
{
"app_id":"追加対象のアプリケーションデイスプレイID-2",
"role_id":"追加対象のロールディスプレイID-2"
}
]
}

Request URL Sample

PUT https://api.xxx.com/api/v0/grouproles/:group-id

Response Sample

{} //空のオブジェクトが返ってくる

ユーザー関連API

GetUserInfo

ユーザーの関連情報取得

Description

tokenで指定されたユーザーに関連した情報取得

Method

GET

Request URL Format

/api/v0/userinfo

Params

Request URL Sample

GET https://api.xxx.com/api/v0/userinfo

Response Sample

{
"u_id": "現在のユーザ",
"username": "ユーザー名",
"email": "現在のユーザーのemailアドレス",
"profile_pic": "ユーザーのプロファイル画像の保存先",
"current_workspace_id": "現在使用しているワークスペースのID",
"is_ws_admin": true, //(bool このユーザーにワークスペースのアドミン権限が付与されているかどうか, trueはアドミン権限有り)
"user_roles": [
{
"r_id": "システム内部のロールID",
"role_name": "ロール名ID1",
"role_id": "画面で入力されたロールID",
"p_id": "プロジェクトID1",
"application_id": "アプリケーションID",
"application_name": "アプリケーション名",
"application_display_order": 0
},
{
"r_id": "5e3ac99c393da500077068b0",
"role_name": "部長",
"role_id": "Manager1",
"p_id": "5e015f03285ab60007442e5e",
"application_id": "xxSystem",
"application_name": "バツバツシステム",
"application_display_order": 0
}
]
}

UpdateUserInfo

ユーザー名、情報の更新

Description

ユーザーの名前、画像を更新する

Method

PUT

Request URL Format

/api/v0/userinfo

Payload

{
"email":"ユーザのemail", //必須
"username":"ユーザー名", 
"user_id":"ユーザーID", //必須
}

Request URL Sample

PUT https://api.xxx.com/api/v0/userinfo

Response Sample

{"error": null //エラーの有無}

GetUsersInGroup

指定されたグループのユーザー一覧の取得

Description

指定されたグループのユーザー一覧を取得する

Method

GET

Request URL Format

/api/v0/users/api/v0/groups/:group-id/users

URL Params

group-id : グループID

Query Param

recursive : bool //複数ユーザー取得

Request URL Sample

GET https://api.xxx.com/api/v0/groups/5df9d7d7aeae8e2fa894e324/users

Response Sample

{
"members": [
{
"u_id": "ユーザーID",
"username": "ユーザー名",
"email": "ユーザーのemail",
"profile_pic": "https://storage.googleapis.com/linker/pub/default.png", //("画像のストレージ領域")
"confirmed": true, //("bool, このユーザーが確認済みかどうか")
"email_sent": true,//("bool, このユーザーにemailが送られたかどうか")
"is_sv": true //("bool, このユーザーがスーパバイザー型かどうか、true=supervisorである")
} //("ユーザー毎にオブジェクトが返される")
],
"count": 1//("int、このグループ内部にいるユーザー数")
}

AddUser

グループに新規ユーザーを作成

Description

指定されたグループに新規ユーザーを作成する

Method

POST

Request URL Format

/api/v0/users

Payload

Content-Type : application/json

{
"email": "グループに追加したいemailアドレス", //必須
"g_id": "グループを識別するID", //必須
"w_id": "ワークスペースのID",
"username": "グループに追加したいユーザー名"
}

Request URL Sample

POST https://api.xxx.com/api/v0/users

Response Sample

{
"added": false, //("bool 追加済みかどうか")
"exists": false, //("b0ol 既に存在するユーザー false=新規で存在しない新しいユーザー")
"user_profile": { //("ユーザープロファイルオブジェクト")
"confirmed": false, //("bool ユーザーemail確認済み false=email上確認されていない")
"email": "登録されたユーザーのemail",
"email_sent": false, //("bool emailが送られたかどうか false=既に対象emailにemailが送られている")
"profile_pics": [//("ユーザープロファイル画像オブジェクト")
{
"mediaLink": "https://storage.googleapis.com/linker/pub/default.png" //("ユーザープロファイルに使用されている画像の保存先")
}
],
"u_id": "登録されたユーザーのID",
"username": "登録されたユーザー名"
}
}

UserRegistration

初回ユーザー登録

Description

ログイン前のユーザーの初期登録開始。LandingPage等で最もはじめのユーザーを登録する場合に利用する。指定ユーザーのメールに登録リンクを送信する。

Method

POST

Request URL Format

/api/v0/users/registration

Payload

{
"email":"メールを送信したい対象 例:test@gmail.com", //必須
"username":"登録したいユーザー名",
"registration_domain":"登録するドメイン", //必須
"registration_path":"サインアップしたユーザーを確認するためのパス", // オプション (デフォルト: 'confirm_email')
"hostname":"登録するホスト名", //必須
"protocol":"例 http, https",
"additional_info":
{
"ユーザーの指定したいフィールド1":"ユーザー指定の値1",
"ユーザーの指定したいフィールド2":"ユーザー指定の値2"
}
 }

Request URL Sample

POST https://api.xxx.com/api/v0/users/registration

Response Sample

{
"confirmation_id": "確認ID",
"email": "初期登録されたemail",
"status": 200
}

ConfirmRegistration

ユーザーの初期登録の確認

Description

ユーザーの初期登録用のメールに添付されたURLから、ユーザーを確認し、確認情報を確認済みにする

Method

GET

Request URL Format

/api/v0/users/registration/confirm

Params

```Qury Params id : sdafasdfasdfadsffdsafasdf //必須 ユーザー初期登録シーケンスのconfirmation_id

##### Request URL Sample

GET https://api.xxx.com/api/v0/users/registration/confirm?id=sdafasdfasdfadsffdsafasdf

##### Response Sample

{ "user": { "confirmation_id": "sdafasdfasdfadsffdsafasdf", //上記の確認ID "confirmed": bool, //true =既に誰かが確認済み,false=まだ確認されていない "email": "hogehoge@gmail.com", //初期登録されたemail "id": "5e8ffd39d4b3e00006344d1e",//システム内部のuser_id "isElapsed": bool,//true =使用期限切れ, false=まで使用できる "username": "登録されたユーザー名" } }

---
### RegisterUser
ユーザーの初期登録
##### Description
ユーザーを初期登録する。パスワード設定に加え、そのユーザー固有の情報をMap形式で登録することができる。
##### Method
POST
##### Request URL Format

/api/v0/users/registration/confirm

##### Payload
```JSON
{
"confirmation_id":"確認用のID", //必須
"email":"登録されるemail", //必須
"username":"登録されるユーザー名",
"workspace":"作成するワークスペース名",
"password": "設定するパスワード", // 必須
"additional_info":{"自由入力フィールド1":"自由入力された値1","自由入力フィールド2":"自由入力された値2"}

Request URL Sample

POST https://api.xxx.com/api/v0/users/registration/confirm

Response Sample

{
 "token": "ログイン用アクセストークン取得 例:dfgsdfsdfsdgfafas213dfdc2"
}

ResetPassword

パスワード初期化リクエスト

Description

ログインしていない状態で、パスワード初期化処理を依頼する。該当メールアドレスが存在した場合に、パスワード変更URLを送信する。

Method

POST

Request URL Format

/api/v0/users/password/forgot

Payload

{
"email":"パスワードをリセットしたいユーザーのemail", //必須
"host":"例:https://stg.xxxxxx.com" //必須
}

Request URL Sample

POST https://api.xxx.com/api/v0/password/forgot

Response Sample

{
"valid_email": true //パスワード初期化をしたいemailの有無
}

SetNewPassword

パスワード再登録

Description

ログインしていない状態でのパスワードを変更する。前提条件として変更用のパスワード初期化用のIDが必要

Method

PUT

Request URL Format

/api/v0/users/password/forgot

Payload

{
"new_password":"必須 新規作成パスワード 例:test",
"confirm_password":"必須 確認用パスワード 例:test この値は新規作成の値と同じでなければならない",
"id":"必須 パスワード初期化開始のapi送信後にemailのリンク内部に埋め込まれた情報をここに入れる"
}

Request URL Sample

PUT https://api.xxx.com/api/v0/users/password/forgot

Response Sample

なし

ValidatePassword

パスワード変更状態の確認

Description

ログインしていない状態でのパスワード変更後、ユーザー状態に関する情報を取得する。

Method

GET

Request URL Format

/api/v0/users/password/validate

Params

```Query Params id: laskdhoifvoasdijflasmdlm //必須 emailに送信されたid情報

##### Request URL Sample

GET https://api.xxx.com/api/v0/users/password/validate

##### Response Sample

{​ "_id": "5e1484d4aeae8e202819528d", "accessed": true, // bool パスワード変更処理開始後アクセス済みかどう "created_at": "2020-01-07T13:17:08.01Z", //パスワード作成日 "isElapsed": false, // bool パスワード変更処理の期限切れかどうか "updated_at": "2020-01-07T13:31:20.961Z" // パスワード更新日 }

---
### SetPassword
ログイン後、パスワード変更
##### Description
ログインしているユーザーのパスワードを変更する
##### Method
PUT
##### Request URL Format

/api/v0/users/password

##### Payload
```JSON
{
"confirm_password":"必須 新しいパスワードの確認 //入力内容はnew_paswordと同じで有る必要が有る",
"new_password":"必須 新しいパスワード",
"old_password":"必須 今まで使用していたパスワード"
}

Request URL Sample

PUT https://api.xxx.com/api/v0/users/password

Response Sample

{
"error": null //エラーの有無
}

AddRoleToUser

ユーザーへロール付与

Description

ユーザーにアプリケーションのロールを付与する

Method

POST

Request URL Format

/api/v0/applications/:project-id/userroles

URL Params

project-id: アプリケーション表示ID

Payload

{
"user_id": "ロールを付加したい対象のユーザーID",
"role_id": "ロール表示ID"
}

Request URL Sample

POST https://api.xxx.com/api/v0/applications/:project-id/userroles

Response Sample

Status 200

{"error": null //エラーの有無}

Status 403

{
"code": 999,
"message": "No privileges to the Application"//ユーザーのプロジェクト権限を追加する権限が無い
}

RemoveRoleFromUser

ユーザからロールを削除

Description

ユーザーからアプリケーションのロールを外す

Method

DELETE

Request URL Format

/api/v0/applications/:project-id/userroles

URL Params

project-id: アプリケーション表示ID
{
"user_id": "ロールを外したい対象のユーザーID",
"role_id": "ロール表示ID"
}

Request URL Sample

DELETE https://api.xxx.com/api/v0/applications/:project-id/userroles

Response Sample

Status 200

{"error": null //エラーの有無}

Status 403

{
"code": 999,
"message": "No privileges to the Application"//ユーザーのプロジェクト権限を外す権限が無い
}

UserImport

ユーザーをインポート

Description

指定されたグループにユーザーをインポートする

Method

POST

Request URL Format

/api/v0/userimport

Payload

Content-Type : application/form-data

{
"current_workspace_id":"ユーザーをインポートする対象のワークスペースID", //必須
"filename":"インポートする目的のCSVファイル名", //必須
"file":"バイナリー型CSVファイル , CSV ファイルのヘッダーはEmail, UserName, Password, GroupDisplayIDs, RoleDisplayIDs, IsDelete
" //必須
}

Request Sample

POST https://api.xxx.com/api/v0/userimport

Response Sample

{"error":null}

GetUsersInWorkspace

ワークスペースのユーザー一覧の取得

Description

指定されたワークスペースのユーザー一覧の取得する

Method

GET

Request URL Format

/api/v0/workspaces/:workspace-id/users

URL Params

workspace-id : ワークスペースID
admin_only : 管理者のみを返すためのブール値

Request URL Sample

GET https://api.xxx.com/api/v0/workspaces/5d8b44adef2261640ab04ef6/users?admin_only=true

Response Sample

{
"5d8b44adef2261640ab04ef7": [
{
"access_key": "5d8b4205ef22614ddd2d72c2",
"created_at": "2019-09-25T19:31:33.855396+09:00",
"id": "5d8b419bef22614ddd2d72c1",
"u_id": "5d8b419bef22614ddd2d72c1",
"updated_at": "2019-12-05T15:24:23.522866+09:00",
"username": "x.xxx"
}
],
"5e12c871ef22619dc9910714": [
{
"access_key": "5d8b4205ef22614ddd2d72c2",
"created_at": "2019-09-25T19:31:33.855396+09:00",
"id": "5d8b419bef22614ddd2d72c1",
"u_id": "5d8b419bef22614ddd2d72c1",
"updated_at": "2019-12-05T15:24:23.522866+09:00",
"username": "x.xxx"
}
],
"5e12c89fef22619dc9910716": [
{
"access_key": "5d8b4205ef22614ddd2d72c2",
"created_at": "2019-09-25T19:31:33.855396+09:00",
"id": "5d8b419bef22614ddd2d72c1",
"u_id": "5d8b419bef22614ddd2d72c1",
"updated_at": "2019-12-05T15:24:23.522866+09:00",
"username": "x.xxx"
}
]
}

GetAllUsersInWorkspace

ワークスペース全ユーザー取得

Description

指定グループ配下のユーザー全員のデータを取得する

Method

GET

Request URL

/api/v0/users/all/g/:group-id

Params

group-id : グループID

Request Sample

GET https://api.xxx.com/api/v0/users/all/g/582b26d8fb90a15e0c24ad81

Response Sample

{
"members": [
{
"confirmed": false,
"email": "hi__12@b-eee.com",
"email_sent": false,
"profile_pics": [
{
"mediaLink": "https://storage.googleapis.com/linker/pub/default.png"
}
],
"u_id": "58a29e35bf400ddced9fede3",
"username": "hi__12"
},
{
"confirmed": false,
"email": "hi__13@b-eee.com",
"email_sent": false,
"profile_pics": [
{
"mediaLink": "https://storage.googleapis.com/linker/pub/default.png"
}
],
"u_id": "58a29e36bf400ddced9fede4",
"username": "hi__13"
},
:
:(省略)
:
{
"confirmed": false,
"email": "test22@b-eee.com",
"email_sent": false,
"profile_pics": [
{
"mediaLink": "https://storage.googleapis.com/linker/pub/default.png"
}
],
"u_id": "58466a7afb90a1024d298306",
"username": "test222"
}
],
"totalMembers": 10
}

RemoveUser

グループからユーザーを削除

Description

グループからユーザーを削除する

Method

DELETE

Request URL Format

/api/v0/users

Params

Content-Type : application/json

{
"g_id": "グループを識別するID", //必須
"u_id": "ユーザーを識別するID", //必須
"w_id": "ワークスペースを識別するID"
}

Request URL Sample

DELETE https://api.xxx.com/api/v0/users

Response Sample

{
"error": null
}

UserInvite

ユーザーを招待

Description

ユーザーを招待する

Method

POST

Request URL Format

/api/v0/userinvite

Payload

Content-Type : application/json

{
"users": [
{
"email": "xxx@b-eee.com"
},
{
"email": "yyy@b-eee.com"
}
],
"domain": "app.xxx.com",
"invitation_path": "招待されたユーザーを確認するためのパス" // オプション (デフォルト: 'confirm_email')
}

Request URL Sample

POST https://api.xxx.com/api/v0/userinvite

Response Sample

[
{
"email": "xxx@b-eee.com",
"stats": 200
},
{
"email": "yyyC@b-eee.com",
"stats": 200
}
]

アプリケーション関連API

Hexabaseでは、「アプリケーション」ごとに、データベース・データレポート・ダッシュボードなどをまとめています。新しくワークプレースを作成すると「新しいアプリケーション」という名前のアプリケーションが作成されています。

GetApplicationsAndDatastores

アプリケーション一覧、データストア一覧の取得

Description

指定ワークスペース配下のアプリケーション(データストア含む)の一覧を取得します

Method

GET

Request URL Format

/api/v0/workspaces/:workspace-id/applications

URL Params

workspace-id : ワークスペースID

Request URL Sample

GET https://api.xxx.com/api/v0/workspaces/582b26d7fb90a15e0c24ad80/applications

Response Sample

{
"application_id": "59bf424c0e247918255de008",
"name": "アプリケーション1",
"display_id": "Prj-U0QgJxXl",
"datastores": [
{
"datastore_id": "59bf42550e2479186a6c6c70",
"name": "データストア1"
}
]
}

フィールド関連API

Hexabaseでは、「アイテム」のカラムを「フィールド」または「画面項目」と呼びます。

GetDatastoreFields

フィールド一覧(DisplayIDを利用)

Description

利用可能なフィールドの一覧を取得します(DisplayIDを利用)

Method

GET

Request URL Format

/api/v0/applications/:app-id/datastores/:datastore-id/fields

URL Params

app-id : アプリケーションID(Hexabase画面から入力したIDを指定)
datastore-id : データストアID(Hexabase画面から入力したID)

Request URL Sample

GET https://api.xxx.com/api/v0/applications/APPNAME/datastores/RESERVES/fields

Response Sample

{
"fields": {
"59bf42550e247918255de00d": {
"field_id": "59bf42550e247918255de00d",
"name": "タイトル",
"display_id": "タイトル",
"dataType": "text",
"search": true,
"show_list": false,