Changes
10 changed files (+157/-0)
-
packages/proto/buf.yaml (new)
-
@@ -0,0 +1,10 @@# buf の全般設定。 # コード生成に関しては `buf.gen.yaml` を参照。 # # SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> # SPDX-License-Identifier: AGPL-3.0-only version: v2 lint: enum_zero_value_suffix: _UNKNOWN
-
-
-
@@ -0,0 +1,12 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.error.v1; option go_package = "pocka.jp/x/yamori/proto/go/error/v1"; message AuthenticationError { uint64 retry_after_seconds = 1; }
-
-
-
@@ -0,0 +1,13 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.user.v1; option go_package = "pocka.jp/x/yamori/proto/go/user/v1"; message LoginMethod { // パスワードによるログインが設定されているか。 bool password_configured = 1; }
-
-
-
@@ -0,0 +1,14 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.user.v1; option go_package = "pocka.jp/x/yamori/proto/go/user/v1"; // ユーザ自身が設定・変更できる項目。 message Profile { // 公開名。 string display_name = 1; }
-
-
-
@@ -0,0 +1,25 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.user.v1; import "yamori/user/v1/login_method.proto"; import "yamori/user/v1/profile.proto"; import "yamori/user/v1/user_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/user/v1"; // システムにログイン可能なユーザ。 message User { UserID id = 1; // ログインユーザ名。社員 ID でもハンドルネームでも本名でも。 string name = 2; Profile profile = 3; // ログイン設定。 LoginMethod login_method = 4; }
-
-
-
@@ -0,0 +1,14 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.user.v1; option go_package = "pocka.jp/x/yamori/proto/go/user/v1"; // システムによって割り振られたシステム内で一意の識別子。 // ユーザ ID は `su-` というプリフィクスを持つ。 message UserID { string value = 1; }
-
-
-
@@ -0,0 +1,18 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.workspace.v1; import "yamori/workspace/v1/login_session_lifespan.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message LoginRequest { string name = 1; string password = 2; LoginSessionLifespan session_lifespan = 3; }
-
-
-
@@ -0,0 +1,29 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.workspace.v1; import "yamori/error/v1/authentication_error.proto"; import "yamori/error/v1/missing_field_error.proto"; import "yamori/error/v1/system_error.proto"; import "yamori/user/v1/user.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message LoginResponse { oneof result { // ログインしたユーザ。 yamori.user.v1.User ok = 1; // 予期せぬシステムエラー。 yamori.error.v1.SystemError system_error = 2; // ユーザ名が見つからない、パスワードが異なっているといったエラー。 yamori.error.v1.AuthenticationError authentication_error = 3; // ログインに必要な要素が抜けている。 yamori.error.v1.MissingFieldError missing_field_error = 4; } }
-
-
-
@@ -0,0 +1,17 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.workspace.v1; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; enum LoginSessionLifespan { LOGIN_SESSION_LIFESPAN_UNKNOWN = 0; LOGIN_SESSION_LIFESPAN_SESSION = 1; LOGIN_SESSION_LIFESPAN_IMMORTAL = 2; LOGIN_SESSION_LIFESPAN_SHORT = 3; LOGIN_SESSION_LIFESPAN_MEDIUM = 4; LOGIN_SESSION_LIFESPAN_LONG = 5; }
-
-
-
@@ -9,6 +9,8 @@ import "yamori/workspace/v1/configure_singleton_request.proto";import "yamori/workspace/v1/configure_singleton_response.proto"; import "yamori/workspace/v1/get_singleton_request.proto"; import "yamori/workspace/v1/get_singleton_response.proto"; import "yamori/workspace/v1/login_request.proto"; import "yamori/workspace/v1/login_response.proto"; import "yamori/workspace/v1/update_singleton_request.proto"; import "yamori/workspace/v1/update_singleton_response.proto";
-
@@ -24,4 +26,7 @@ rpc UpdateSingleton(UpdateSingletonRequest) returns (UpdateSingletonResponse);// ワークスペースを設定する。既に設定済みの場合はエラーとなる。 rpc ConfigureSingleton(ConfigureSingletonRequest) returns (ConfigureSingletonResponse); // ワークスペースにログインする。 rpc Login(LoginRequest) returns (LoginResponse); }
-