Skip to content

Architecture

The library is designed as follows:

Idsec SDK Design

Design Perspectives

The main components are:

  • Profile: The profile defines a set of properties and information about the user's authentication methods. Profiles are persisted on the filesystem for subsequent actions.
  • Authenticators: The integrations with specific authentication methods, which enable interaction with services. An authentication method can either be Identity (User/Service User) or a custom implementation.
  • Services: The service providing functionality (requires one or more associated authenticators to perform actions). For example, the SIA service exposes SIA APIs in an secure manner.
  • Services Model Schemes The models exposed by a service, which can be used to perform the service's actions.
  • CLI Actions: CLI interface built on the SDK, which provides users with the following shell commands:
    • configure: Configure a profile with authentication details
    • login: Log in with a configured profile authenticator
    • exec: Execute services actions

Enable Attribute

The Enable attribute controls what services and actions are available in the Terrafrom/CLI. It allows developers to hide work-in-progress features from releases.

Control Levels

Level Scope Effect
Service Entire service Service is not registered
Action Single action Action is filtered out

How It Works

  1. The Enable attribute is checked at registration time (during init())
  2. Filtering is controlled by a build flag (releasedFeaturesOnly)
  3. When filtering is active, disabled services are skipped and disabled actions are removed
  4. The rest of the SDK sees only enabled services and actions

Build Flag

By default, filtering is OFF. Enable it for release builds:

1
go build -ldflags "-X github.com/cyberark/idsec-sdk-golang/pkg/services.releasedFeaturesOnly=true" ./...

Default Behavior

Warning: If Enabled is not set, the service or action is enabled. This keeps existing code working without changes.

For usage examples, see Services.