Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

アカウントに関連したデータ構造の見直し #1

Merged
merged 12 commits into from
Feb 12, 2023
Merged

Conversation

turtton
Copy link
Member

@turtton turtton commented Feb 12, 2023

  • Accountクラス内にConfidentialクラスを追加
    アカウントのパスワードなどのセンシティブな情報を格納するクラスになります
  • Accountクラス内にis_botフラグを追加
  • Followクラス内に以前話していたULIDを追加
  • AccountDataクラス内にMetaDataクラスを追加
    これはMastodonやMisskeyにもある機能で、各種リンクとかを載せるためのデータになります。
    image
    ActivityPubデータ内のattachmentに相当します

Signed-off-by: turtton top.gear7509@turtton.net

Signed-off-by: turtton <top.gear7509@turtton.net>
@github-actions
Copy link

github-actions bot commented Feb 12, 2023

PR Preview Action v1.2.0
Preview removed because the pull request was closed.
2023-02-13 00:00 UTC

@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

プレビューに使えるかなとワークフローをいじいじしてたんですが、どうやらmermaidは見えなかったり、全てのボタンのリンクがこのプレビューサイトにならなかったりと結構微妙な感じになっちゃいましたね。これだったらCloudflare pages使った方がよかったな

@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

今はこんな感じです
Screenshot_20230212_115618

Signed-off-by: turtton <top.gear7509@turtton.net>
@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

discordの話を受けてis_botフラグを追加しました
Screenshot_20230212_140344

@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

そういやこれってメアドとかパスワードみたいなデータはどこで持つんですか?それもアカウントに入れるべきですかね?

@HalsekiRaika
Copy link
Member

アカウントのPKを使って別のテーブルで持つべきかな
メアドとかのユーザーの情報は機密に当たるから暗号化したものを特別で持つべきだと思う

Signed-off-by: turtton <top.gear7509@turtton.net>
Signed-off-by: turtton <top.gear7509@turtton.net>
@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

こんな感じでしょうか
Screenshot_20230212_192453

@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

書いてから思ったんですが、アプリケーション側のデータ構造としてもAccountクラスとは完全に分離すべきですかね

@HalsekiRaika
Copy link
Member

結合した時点で漏れるリスクってのはどうしても出てくるから完全に切り離したほうが安全かも

Signed-off-by: turtton <top.gear7509@turtton.net>
@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

切り離しました。これで大丈夫そうでしょうか
Screenshot_20230212_193140

@HalsekiRaika
Copy link
Member

OK 👍

@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

一応確認なんですが、MetaDataの順番を表現するためにIndexフィールドを設定したんですけど、これってVectorの順序で表現すべきですかね。
DB側ではindex的なものを持たせるとした場合、そこでフィールドとカラムの内容の乖離が埋まれる方がダメですかね

@HalsekiRaika
Copy link
Member

PKにAuto Incrementを使用すれば順番は担保されるはずだからそこまで考えることはないはず
最悪アプリケーション側でソートする

@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

PKで順序守れそうならこのフィールド消しますね

Signed-off-by: turtton <top.gear7509@turtton.net>
@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

大丈夫そうだったらマージしちゃってください

@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

あれ、でもこの場合だとPKの情報をアプリケーション側が持ててないので内容の更新が出来ませんね。固有のIDは持っておくべきですね

@HalsekiRaika
Copy link
Member

そうだね
APIの返却値としてOrderedなリストを返却するようにすれば一応Indexは剥がせるけどそれができない言語もあるから

{
  "meta": [
    1: { .. }
    2: { .. }
    3: { .. }
  ]
}

って構造体でやり取りするようになるかも

Signed-off-by: turtton <top.gear7509@turtton.net>
@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

APIの返却値としてOrderedなリストを返却するようにすれば一応Indexは剥がせるけどそれができない言語もあるから...

それはWebAPIの定義をやるときに忘れないようにしておきますね。

とりあえずMetaDataクラス内にPK用のidを入れました。Vectorの配列で順序の表現をするってところは変わってない認識で大丈夫ですよね?
Screenshot_20230212_203331

@turtton turtton changed the title ULIDの追加とMetaDataクラスの追加 アカウントに関連したデータ構造の見直し Feb 12, 2023
@turtton
Copy link
Member Author

turtton commented Feb 12, 2023

大丈夫そうなのでマージしまーす

@turtton turtton merged commit babce0b into main Feb 12, 2023
@turtton turtton deleted the meta-ulid branch February 12, 2023 23:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants