feat: add S3 and SQS permissions to service accounts and capability groups

- New capability groups: s3-users, s3-writers, sqs-users, sqs-writers
- portfolio-agent: add s3:read, sqs:read
- memory-agent: add s3:read, s3:write, sqs:read, sqs:write
- Enables portfolio and memory services to access MinIO S3 and message queues via JWT
This commit is contained in:
2026-09-05 00:14:43 -07:00
parent 6db4d7dcb0
commit ed644b2c83
+6 -2
View File
@@ -185,6 +185,10 @@ GROUP_PERMISSIONS = {
"llm-users": ["llm:inference"], "llm-users": ["llm:inference"],
"memory-users": ["memory:read"], "memory-users": ["memory:read"],
"memory-writers": ["memory:read", "memory:write"], "memory-writers": ["memory:read", "memory:write"],
"s3-users": ["s3:read"],
"s3-writers": ["s3:read", "s3:write"],
"sqs-users": ["sqs:read"],
"sqs-writers": ["sqs:read", "sqs:write"],
} }
perms = set() perms = set()
for group in request.user.groups.all(): for group in request.user.groups.all():
@@ -806,7 +810,7 @@ print("\n[SERVICE ACCOUNTS] Creating service accounts for API access...")
# Format: "<api>:<action>" e.g. "llm:inference", "memory:write" # Format: "<api>:<action>" e.g. "llm:inference", "memory:write"
SERVICE_ACCOUNTS = { SERVICE_ACCOUNTS = {
"portfolio-agent": { "portfolio-agent": {
"roles": ["llm:inference", "memory:read"], "roles": ["llm:inference", "memory:read", "s3:read", "sqs:read"],
"attributes": { "attributes": {
"memory_projects": ["homelab", "portfolio"], "memory_projects": ["homelab", "portfolio"],
"memory_visibility": "public", "memory_visibility": "public",
@@ -815,7 +819,7 @@ SERVICE_ACCOUNTS = {
"secret_name": "portfolio-agent-oidc", "secret_name": "portfolio-agent-oidc",
}, },
"memory-agent": { "memory-agent": {
"roles": ["llm:inference", "memory:read", "memory:write"], "roles": ["llm:inference", "memory:read", "memory:write", "s3:read", "s3:write", "sqs:read", "sqs:write"],
"attributes": { "attributes": {
"memory_projects": ["*"], "memory_projects": ["*"],
"memory_visibility": "private", "memory_visibility": "private",