intents-operator icon indicating copy to clipboard operation
intents-operator copied to clipboard

Implement SaaS-Based Approval Workflow for ClientIntents

Open omris94 opened this issue 1 year ago • 0 comments

Description

This pull request introduces a SaaS-based approval workflow for ClientIntents within the Otterize intents-operator. By default, there are no changes to the user API unless explicitly configured by the user.

Key Changes

  • ApprovedClientIntents CRD:
    A new Custom Resource Definition (CRD) named ApprovedClientIntents has been added. This CRD represents ClientIntents resources that have been approved, facilitating a controlled and auditable access management process.

  • Refactoring of Intents Reconciliation:
    The existing IntentsReconciler logic has been refactored into ApprovedIntentsReconciler. All operations previously triggered by the reconciliation of intents now utilize the new ApprovedClientIntents CRD, ensuring that only approved intents are enforced.

  • Introduction of Approval Flow Reconciler:
    A new reconciler has been implemented to handle the approval flow. By default, the operator auto-approves any ClientIntents. If configured to integrate with the cloud, it reports the ClientIntents as access requests to the cloud and awaits approval status. Once a request is approved, it triggers the creation of an ApprovedClientIntents resource.

Testing

Describe how this can be tested by reviewers. Be specific about anything not tested and reasons why. If this library has unit and/or integration testing, tests should be added for new functionality and existing tests should complete without errors.

Please include any manual steps for testing end-to-end or functionality not covered by unit/integration tests.

Also include details of the environment this PR was developed in (language/platform/browser version).

  • [x] This change adds test coverage for new/changed/fixed functionality

Checklist

  • [ ] I have added documentation for new/changed functionality in this PR and in github.com/otterize/docs

omris94 avatar Feb 26 '25 09:02 omris94