Architecture¶
The library is designed as follows:

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 detailslogin: Log in with a configured profile authenticatorexec: 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¶
- The Enable attribute is checked at registration time (during
init()) - Filtering is controlled by a build flag (
releasedFeaturesOnly) - When filtering is active, disabled services are skipped and disabled actions are removed
- The rest of the SDK sees only enabled services and actions
Build Flag¶
By default, filtering is OFF. Enable it for release builds:
1 | |
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.