Skip to content

v1.2.0

tagged this 07 Oct 15:31
* OAAClient `templates` module has been refactored into sub modules to improve readability and maintainability. Backwards compatibility has been maintained for all existing imports.
  * Template components can now be imported directly from sub-modules based on template or common purpose
    * `oaaclient.templates.application`
    * `oaaclient.templates.common`
    * `oaaclient.templates.enrichment`
    * `oaaclient.templates.exceptions`
    * `oaaclient.templates.hris`
    * `oaaclient.templates.idp`
    * `oaaclient.templates.principal`
    * `oaaclient.templates.secret_store`
* Add support for AI entity types in the Custom Application Template: **Agents** and **Models**. Agents represent AI agent entities that can be assigned to groups, have access credentials, reference models, and be authorized via permissions or roles similar to local users. Models represent AI model entities that can be referenced by agents.
  ```python
  agent = app.add_agent(name="My Agent", unique_id="agent-001", ai_platform="OpenAI", ai_agent_publisher="Acme")
  agent.is_active = True
  agent.add_group("admin_group")
  agent.add_access_cred("api_key_001")
  agent.add_permission("read", resources=[resource1])
  agent.add_role("viewer", apply_to_application=True)

  model = app.add_model(name="GPT-4", unique_id="model-001", ai_platform="OpenAI", ai_model_publisher="OpenAI", ai_model_family="GPT", ai_model_series="4")
  agent.add_model("model-001")
  ```
  * Custom properties can be defined for agents and models using `define_local_agent_property()` and `define_local_model_property()`.
* Add support for the new Secret Store Submission Template `oaaclient.templates.secret_store`. Models secret store providers (vaults, secrets managers, credential stores) including permissions, vaults, vault entries, and identity-to-permission assignments.
  ```python
  from oaaclient.templates import OAAPermission, SecretStoreSubmission

  provider = SecretStoreSubmission(name="Hashicorp Vault", secret_store_type="hashicorp_vault")
  permission = provider.secret_store.add_permission(name="Read", unique_id="perm-read", permission_type=[OAAPermission.DataRead])

  vault = provider.secret_store.add_vault(name="Prod Secrets", vault_type="general", unique_id="vault-01")
  entry = vault.add_entry(name="db_password", unique_id="entry-01")
  entry.add_identity(identity_type="OktaUser", external_id="svc_account@example.com")

  identity = provider.secret_store.add_identity_to_permission(identity="svc_account", identity_type="local_user")
  identity.add_permission_assignment(vault=[vault.id], permissions=[permission.id])
  ```
  * `SecretStorePermission` can be tagged with canonical `OAAPermission` types via `permission_type` on `add_permission()` or the `add_permission_type()` method.
* Add support for the Custom Principals Template via the `oaaclient.templates.principal` module.
  ```python
  from oaaclient.templates.principal import CustomPrincipal
  principal = CustomPrincipal("My Principal", principal_type="MyPrincipal", tenant_id="tenant01")
  principal.add_user(
        name="User Example",
        unique_id="example0001",
        email="user@example.com",
        user_unique_id="user@example.com"
    )
  ```
* Adds new classes for generating an Identity Mapping Configuration submission. Classes are located in `oaaclient.templates.common`
* Add support for the Entity Enrichment Template via the `oaaclient.templates.enrichment` module. Attaches custom searchable properties to existing Veza entities (such as `AwsIamRole`, `AwsIamUser`, or `OktaUser`) discovered by other integrations, without creating new entities.
  ```python
  from oaaclient.templates.enrichment import EntityEnrichment
  from oaaclient.templates import OAAPropertyType

  enrichment = EntityEnrichment(name="My Enrichment")
  enrichment.property_definitions.define_property(entity_type="AwsIamRole", name="corp_classification", property_type=OAAPropertyType.STRING)

  entity = enrichment.add_entity(entity_type="AwsIamRole", id="arn:aws:iam::339083562601:role/example", data_source_id="339083562601:awsiam")
  entity.set_property("corp_classification", "development")
  ```
Assets 2
Loading