Releases: sotoon/iam-client
Releases · sotoon/iam-client
Release list
Interceptor
[1.3.0] - 2025-09-15
Highlights
- Introduced client-side interceptors with built-in Retry and Circuit Breaker mechanisms.
- Increased HTTP reliability with a worker pool for request handling.
- Improved resource utility efficiency and overall throughput.
Added
- Interceptor framework in
pkg/client/interceptor/enabling:- Retry policy with configurable backoff and max attempts.
- Circuit breaker to prevent cascading failures under error bursts.
Changed
- HTTP execution path refactored to use a worker pool for better concurrency control and stability under load.
- Resource utilities optimized to reduce overhead and improve efficiency during high-traffic operations.
Performance
- Reduced tail latencies for bursty workloads due to worker pooling.
- Lower error rates under partial upstream failures via circuit breaker fast-fail and retries on transient errors.
Notes
- You can register multiple interceptors; they execute in the order added.
- Circuit Breaker and Retry are complementary: CB quickly fails during sustained errors; Retry handles transient errors with backoff.
create_role
Release Notes - v1.2.8 (2025-09-07)
Summary
- Added description support to Role creation.
- Changed
CreateRolesignature and response type. - Changed
BulkAddRulesToRolerequest body. - Added an example for creating a role in
examples/create_role_example.go.
What Changed
CreateRole API (breaking)
Old:
Signature: CreateRole(roleName string, workspaceUUID *uuid.UUID) (*types.Role, error)
Response: types.RoleNew:
Signature: CreateRole(roleName, description string, workspaceUUID *uuid.UUID) (*types.RoleWithCompactWorkspace, error)
Response: types.RoleWithCompactWorkspaceRole request payload
Old:
type RoleReq struct {
Name string `json:"name" validate:"required"`
Workspace string `json:"workspace" validate:"required"`
}New:
type RoleReq struct {
Description string `json:"description_fa"`
Name string `json:"name" validate:"required"`
Workspace string `json:"workspace" validate:"required"`
}New Example
- Added
examples/create_role_example.godemonstrating the newCreateRoleusage with description. - Added
examples/bulk_add_rules_to_role_example.go.
Breaking Changes
-
The
CreateRolemethod now requires a description parameter and returns a different type (RoleWithCompactWorkspace). -
Any code calling
CreateRolemust be updated to:- Pass
roleDescription(string) as the second argument. - Handle the new return type
types.RoleWithCompactWorkspace.
- Pass
Initial Public Release
Tag: v1.2.6
Date: 2025-08-31
Summary
First public release of the Sotoon IAM Client for Go.
Provides a stable interface to interact with the Sotoon IAM Service, including:
- Token management
- Authorization / identification flows
- User, group, and role management
Also includes client-side failover, extensive examples, and clear documentation.
Highlights
- ✅ Reliable client with client-side failover

- 📂 Public API in
pkg/client/interface.go - 🧩 Rich example suite under
examples/(tokens, users, service users, groups, roles, bulk ops) - 📦 Vendored dependencies for reproducible builds
- 🔒 Security and contribution policies:
Getting Started
- Module:
github.com/sotoon/iam-client - Go:
1.19+
Install:
go get github.com/sotoon/iam-client@v1.2.6
go mod tidy
go mod vendorSee README.md and pkg/client/interface.go for API overview.
Breaking Changes
None.
Known Issues
None currently. Please report via Issues.