Implement SaaS-Based Approval Workflow for ClientIntents
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) namedApprovedClientIntentshas been added. This CRD representsClientIntentsresources that have been approved, facilitating a controlled and auditable access management process. -
Refactoring of Intents Reconciliation:
The existingIntentsReconcilerlogic has been refactored intoApprovedIntentsReconciler. All operations previously triggered by the reconciliation of intents now utilize the newApprovedClientIntentsCRD, 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 anyClientIntents. If configured to integrate with the cloud, it reports theClientIntentsas access requests to the cloud and awaits approval status. Once a request is approved, it triggers the creation of anApprovedClientIntentsresource.
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