Skip to content

Releases: sotoon/iam-client

Interceptor

Choose a tag to compare

@farzad80rad farzad80rad released this 15 Sep 14:12
54eef4a

[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

Choose a tag to compare

@farzad80rad farzad80rad released this 07 Sep 08:07

Release Notes - v1.2.8 (2025-09-07)

Summary

  • Added description support to Role creation.
  • Changed CreateRole signature and response type.
  • Changed BulkAddRulesToRole request 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.Role

New:

Signature: CreateRole(roleName, description string, workspaceUUID *uuid.UUID) (*types.RoleWithCompactWorkspace, error)
Response: types.RoleWithCompactWorkspace

Role 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.go demonstrating the new CreateRole usage with description.
  • Added examples/bulk_add_rules_to_role_example.go .

Breaking Changes

  • The CreateRole method now requires a description parameter and returns a different type (RoleWithCompactWorkspace).

  • Any code calling CreateRole must be updated to:

    1. Pass roleDescription (string) as the second argument.
    2. Handle the new return type types.RoleWithCompactWorkspace.

Initial Public Release

Choose a tag to compare

@farzad80rad farzad80rad released this 31 Aug 15:01

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


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 vendor

See README.md and pkg/client/interface.go for API overview.


Breaking Changes

None.


Known Issues

None currently. Please report via Issues.