LoginSignup
1
0

[OutSystems11]ITユーザー関連の情報を引き出すEntity・API

Posted at

質問箱でITユーザー関連の質問を取得する方法について質問をもらったので、整理する。

環境情報

Personal Environment(Version 11.25.0 (Build 41743))
Service Studio(Version 11.54.49)

ITユーザー

ドキュメント (2024/03/10時点。なおこのドキュメントの日本語版は開いてみたが中身が表示されなかった)

Application Users Groups and Roles > Considerationsに記載がある。

LifeTime syncronizes IT users across environments. In this case, Users from Service Center user provider (typically, tenant_id = 1) don´t need to be migrated.

LifeTimeが各環境にITユーザーを同期させている。このとき、tenant_id属性がService Center (通常はtenant_id=1) のレコードがITユーザー。このドキュメントは元々マイグレーションのためのものなので、「don't need to be migrated」のような記述が出てくるが、気にしなくて良いと思う。

Entity

(System)/UserMT: Tenant_Id=Service CenterのレコードがITユーザー

ユーザー情報を格納しているのはUser Entityであるが、このEntityはマルチテナントのEntity。
Service StudioでUserを選択して、右クリック⇒View Dataしてみると、同じテナントのユーザーのみが表示される。

そこで、ITユーザーを見たいときには、User Entityに対するビューとして、全てのテナントのデータを閲覧できるUserMTを使用する。

以下のように、Tenant_Id属性が1のものがITユーザー。
image.png

(System)/Tenant: Name=ServiceCenterのレコードのIdでUserMTを検索する

Service Centerを表すTenantは、以下の通り、Tenant Entityから確認できる。
image.png

(System)/Developer Entity

DiscoveryというForgeコンポーネントでTeamやITユーザーの情報を扱っているので、それを確認してみると、このEntityを使っていた。

Descriptionは、

Service Center user and role permissions.

とあり、Service Centerユーザー(たぶん歴史的理由でこういう名前になっている。確かLifeTimeは後からできた)とその権限を管理しているということのようだ。

注意事項として、このEntityに関してはドキュメントが見つからないので、確実なことは分からない。

とはいえ、データからわかることもあるので見ていこう。

image.png

読み取れる情報として(全て推測である点について注意)

  • Role_Id=0のレコードは、個別のITユーザーに直接与えられている権限を表す
  • User_Id=0のレコードは、ロール定義そのものを表す(後述)

API

Life Time API v2 - GET /users/で取得できるはず。
ただ、Personal Environmentでは動作確認が取れない機能なので、リンクのみ示しておく。

ITユーザーのRole

ドキュメント

恐らく無い。

Entity

ER図

image.png

(System)/ServiceCenter_Role: ITユーザー向けのロールのリスト

ドキュメントが無いので、推測であることに注意。
PE環境なので、独自のITユーザー向けRoleを作れないので、デフォルトのAdministratorとDeveloperしか無い(他の2つはあまり見覚えが無いRoleなので、内部的に利用しているものだろう)。
image.png

これを、Developer Entityとジョインすることで与えられた権限を見ることが出来そう。

API

Life Time API v2 - GET /roles/で取得できるはず。
ただ、Personal Environmentでは動作確認が取れない機能なので、リンクのみ示しておく。

Team

ドキュメント

恐らく無い。

Entity

Teamについては、Entityの情報は見当たらない。

API

Life Time API v2 - GET /teams/で取得できるはず。
ただ、Personal Environmentでは動作確認が取れない機能なので、リンクのみ示しておく。

なお、↑でも出てきたDiscoveryというForgeコンポーネントでは、Life Timeの既にdeprecatedになった古いLifeTime Services APIを使っている。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0