From 4bad0a2e1adb46b780c4462595ebe4f55db318d9 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 24 Jan 2026 23:46:47 -0800 Subject: [PATCH] iam: define IamStorage interface --- weed/iam/storage.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 weed/iam/storage.go diff --git a/weed/iam/storage.go b/weed/iam/storage.go new file mode 100644 index 000000000..82349c0f6 --- /dev/null +++ b/weed/iam/storage.go @@ -0,0 +1,23 @@ +package iam + +import ( + "context" + + "github.com/seaweedfs/seaweedfs/weed/iam/policy" + "github.com/seaweedfs/seaweedfs/weed/pb/iam_pb" +) + +type IamStorage interface { + // Identity Management + CreateIdentity(ctx context.Context, identity *iam_pb.Identity) error + GetIdentity(ctx context.Context, name string) (*iam_pb.Identity, error) + UpdateIdentity(ctx context.Context, identity *iam_pb.Identity) error + DeleteIdentity(ctx context.Context, name string) error + ListIdentities(ctx context.Context, limit int, offset string) ([]*iam_pb.Identity, error) + + // Policy Management + CreatePolicy(ctx context.Context, policy *policy.PolicyDocument) error + GetPolicy(ctx context.Context, name string) (*policy.PolicyDocument, error) + DeletePolicy(ctx context.Context, name string) error + ListPolicies(ctx context.Context, limit int, offset string) ([]string, error) +}