mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-24 15:00:43 +02:00
* Update IAM and S3 protobuf definitions for explicit IAM gRPC APIs * Refactor s3api: Extract generic ExecuteAction method for IAM operations * Implement explicit IAM gRPC APIs in S3 server * iam: remove deprecated GetConfiguration and PutConfiguration RPCs * iamapi: refactor handlers to use CredentialManager directly * s3api: refactor embedded IAM to use CredentialManager directly * server: remove deprecated configuration gRPC handlers * credential/grpc: refactor configuration calls to return error * shell: update s3.configure to list users instead of full config * s3api: fix CreateServiceAccount gRPC handler to map required fields * s3api: fix UpdateServiceAccount gRPC handler to map fields and safe status * s3api: enforce UserName in embedded IAM ListAccessKeys * test: fix test_config.json structure to match proto definition * Revert "credential/grpc: refactor configuration calls to return error" This reverts commitcde707dd8b. * Revert "server: remove deprecated configuration gRPC handlers" This reverts commit7307e205a0. * Revert "s3api: enforce UserName in embedded IAM ListAccessKeys" This reverts commitadf727ba52. * Revert "s3api: fix UpdateServiceAccount gRPC handler to map fields and safe status" This reverts commit6a4be3314d. * Revert "s3api: fix CreateServiceAccount gRPC handler to map required fields" This reverts commit9bb4425f07. * Revert "shell: update s3.configure to list users instead of full config" This reverts commitf3304ead53. * Revert "s3api: refactor embedded IAM to use CredentialManager directly" This reverts commit9012f27af8. * Revert "iamapi: refactor handlers to use CredentialManager directly" This reverts commit3a14821223. * Revert "iam: remove deprecated GetConfiguration and PutConfiguration RPCs" This reverts commite16e08aa00. * s3api: address IAM code review comments (error handling, logging, gRPC response mapping) * s3api: add robustness to startup by retrying KEK and IAM config loading from Filer * s3api: address IAM gRPC code review comments (safety, validation, status logic) * fix return
77 lines
2.9 KiB
Protocol Buffer
77 lines
2.9 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package messaging_pb;
|
|
|
|
option go_package = "github.com/seaweedfs/seaweedfs/weed/pb/s3_pb";
|
|
option java_package = "seaweedfs.client";
|
|
option java_outer_classname = "S3Proto";
|
|
|
|
//////////////////////////////////////////////////
|
|
|
|
import "iam.proto";
|
|
|
|
service SeaweedS3 {
|
|
|
|
// Explicit IAM APIs mirroring SeaweedIdentityAccessManagement
|
|
rpc ListUsers (iam_pb.ListUsersRequest) returns (iam_pb.ListUsersResponse) {}
|
|
rpc CreateUser (iam_pb.CreateUserRequest) returns (iam_pb.CreateUserResponse) {}
|
|
rpc GetUser (iam_pb.GetUserRequest) returns (iam_pb.GetUserResponse) {}
|
|
rpc UpdateUser (iam_pb.UpdateUserRequest) returns (iam_pb.UpdateUserResponse) {}
|
|
rpc DeleteUser (iam_pb.DeleteUserRequest) returns (iam_pb.DeleteUserResponse) {}
|
|
|
|
rpc ListAccessKeys (iam_pb.ListAccessKeysRequest) returns (iam_pb.ListAccessKeysResponse) {}
|
|
rpc CreateAccessKey (iam_pb.CreateAccessKeyRequest) returns (iam_pb.CreateAccessKeyResponse) {}
|
|
rpc DeleteAccessKey (iam_pb.DeleteAccessKeyRequest) returns (iam_pb.DeleteAccessKeyResponse) {}
|
|
|
|
rpc PutUserPolicy (iam_pb.PutUserPolicyRequest) returns (iam_pb.PutUserPolicyResponse) {}
|
|
rpc GetUserPolicy (iam_pb.GetUserPolicyRequest) returns (iam_pb.GetUserPolicyResponse) {}
|
|
rpc DeleteUserPolicy (iam_pb.DeleteUserPolicyRequest) returns (iam_pb.DeleteUserPolicyResponse) {}
|
|
|
|
rpc ListServiceAccounts (iam_pb.ListServiceAccountsRequest) returns (iam_pb.ListServiceAccountsResponse) {}
|
|
rpc CreateServiceAccount (iam_pb.CreateServiceAccountRequest) returns (iam_pb.CreateServiceAccountResponse) {}
|
|
rpc UpdateServiceAccount (iam_pb.UpdateServiceAccountRequest) returns (iam_pb.UpdateServiceAccountResponse) {}
|
|
rpc DeleteServiceAccount (iam_pb.DeleteServiceAccountRequest) returns (iam_pb.DeleteServiceAccountResponse) {}
|
|
rpc GetServiceAccount (iam_pb.GetServiceAccountRequest) returns (iam_pb.GetServiceAccountResponse) {}
|
|
|
|
}
|
|
|
|
//////////////////////////////////////////////////
|
|
|
|
message S3CircuitBreakerConfig {
|
|
S3CircuitBreakerOptions global=1;
|
|
map<string, S3CircuitBreakerOptions> buckets= 2;
|
|
}
|
|
|
|
message S3CircuitBreakerOptions {
|
|
bool enabled=1;
|
|
map<string, int64> actions = 2;
|
|
}
|
|
|
|
//////////////////////////////////////////////////
|
|
// Bucket Metadata
|
|
|
|
message CORSRule {
|
|
repeated string allowed_headers = 1;
|
|
repeated string allowed_methods = 2;
|
|
repeated string allowed_origins = 3;
|
|
repeated string expose_headers = 4;
|
|
int32 max_age_seconds = 5;
|
|
string id = 6;
|
|
}
|
|
|
|
message CORSConfiguration {
|
|
repeated CORSRule cors_rules = 1;
|
|
}
|
|
|
|
message BucketMetadata {
|
|
map<string, string> tags = 1;
|
|
CORSConfiguration cors = 2;
|
|
EncryptionConfiguration encryption = 3;
|
|
}
|
|
|
|
message EncryptionConfiguration {
|
|
string sse_algorithm = 1; // "AES256" or "aws:kms"
|
|
string kms_key_id = 2; // KMS key ID (optional for aws:kms)
|
|
bool bucket_key_enabled = 3; // S3 Bucket Keys optimization
|
|
}
|