Skip to content

Data 4950 - Atlan backend addition to Usernaut - #162

Open
Pujathacker2210 wants to merge 11 commits into
redhat-data-and-ai:mainfrom
Pujathacker2210:DATA-4950
Open

Data 4950 - Atlan backend addition to Usernaut#162
Pujathacker2210 wants to merge 11 commits into
redhat-data-and-ai:mainfrom
Pujathacker2210:DATA-4950

Conversation

@Pujathacker2210

@Pujathacker2210 Pujathacker2210 commented Dec 11, 2025

Copy link
Copy Markdown
Collaborator

Changes

📝 Description

Adding Atlan backend to Usernaut

What changed?

This PR adds Atlan as a backend for Usernaut, enabling end-to-end user and group lifecycle management.

Key Features

Atlan backend support: Introduces Atlan as a managed backend for provisioning, de-provisioning, and group management.

  • depends_on support: Allows Atlan groups to sync membership from an upstream directory (LDAP / Active Directory) instead of directly managing users.

  • identity_provider_alias for group sync: Uses the identity provider alias configured in Atlan to enable LDAP/AD-based group synchronization.

  • Flexible dependency configuration: depends_on and identity_provider_alias are only required when LDAP/AD group sync is enabled.

  • Atlan connection configuration: Requires url and api_token for standard API operations.

  • asset_transfer_username: Mandates a service account username to transfer asset ownership when users are deleted during offboarding.

  • sso_sync support: sso_sync=true skips manual user creation when users are expected to be created via SSO login.

  • default_persona assignment: Allows assigning a default persona to all groups created via Usernaut.

  • OAuth credentials for user deletion: Supports oauth_client_id and oauth_client_secret to generate runtime OAuth tokens required for user deletion (API tokens are insufficient).

  • Group-level persona overrides: Additional personas can be specified per group using groupParams, handled during group reconciliation.

✅ Developer Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas

@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello @Pujathacker2210, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a comprehensive integration of Atlan as a new backend for Usernaut. The primary goal is to automate the synchronization of user and group lifecycle events between Usernaut and Atlan, thereby reducing the need for manual intervention and enhancing the overall reliability of data governance across platforms. The changes encompass configuration, dependency management, core controller logic, and a new client implementation tailored for Atlan's API, including considerations for SSO and LDAP synchronization.

Highlights

  • Atlan Backend Integration: Introduced a new backend integration for Atlan, enabling automated synchronization of user and group lifecycle events with the Atlan platform.
  • Configuration Updates: Added a new 'atlan' backend entry to appconfig/default.yaml with configurable URL, API token, identity provider alias, and default owner username. Existing backend configurations (Fivetran, Snowflake, Gitlab) were disabled by default and their connection path prefixes were standardized.
  • Go Module Dependencies: Updated go.mod and go.sum to include the github.com/atlanhq/atlan-go SDK and other necessary indirect dependencies for the Atlan client.
  • Controller Logic for Atlan: Extended the GroupReconciler in internal/controller/group_controller.go to handle Atlan-specific LDAP and SSO synchronization logic, including group name transformation and setting sync flags on the Atlan client.
  • Atlan Client Implementation: Developed a dedicated Atlan client (pkg/clients/atlan) with functionalities for managing users (fetching, creating, deleting) and teams (fetching, creating, deleting, managing membership), including support for SSO group mapping.
  • SSO Synchronization Option: Added an SSOSync boolean field to the Backend struct in pkg/config/config.go to allow explicit configuration of SSO synchronization behavior for backends like Atlan.
Ignored Files
  • Ignored by pattern: vendor/** (119)
    • vendor/github.com/atlanhq/atlan-go/LICENSE
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/abstract_package.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/asset.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/atlan_fields.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/atlan_tag_cache.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/auth_policy_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/batch_processing.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/constants.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/custom_metadata_cache.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/data_contract_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/errors.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/file.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/fluent_search.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/glossary_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/group_cache.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/group_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/index_search_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/persona_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/purpose_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/role_cache.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/role_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/snowflake_miner.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/table_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/token_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/typedef_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/user_cache.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/user_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/assets/workflow_client.go
    • vendor/github.com/atlanhq/atlan-go/atlan/enums.go
    • vendor/github.com/atlanhq/atlan-go/atlan/logger/logger.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/file.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/response.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/search.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/access_control.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/api_tokens.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/asset.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/column.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/connection.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/datacontract.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/glossary.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/glossary_category.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/glossary_term.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/group.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/materialisedview.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/role.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/table.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/user.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/view.go
    • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/workflow.go
    • ... and -69 more files (display capped at 50)
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


Data flows, a silent stream, Atlan joins, a vibrant dream. Users synced, groups align, Code's new path, a clear design.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new backend integration for Atlan, which is a significant and well-structured addition. The code is organized logically into a new atlan package, covering user management, team management, and team memberships. The implementation correctly handles SSO and LDAP sync scenarios by conditionally skipping certain operations. I've included several suggestions to improve efficiency, reduce code redundancy, and enhance configuration clarity. Overall, this is a solid contribution.

Comment thread pkg/clients/atlan/team_membership.go
Comment thread pkg/clients/atlan/team_membership.go Outdated
Comment thread appconfig/default.yaml Outdated
Comment thread config/samples/v1alpha1_group.yaml Outdated
Comment thread internal/controller/group_controller.go Outdated
Comment thread pkg/clients/atlan/client.go
Comment thread pkg/clients/atlan/teams.go
Comment thread pkg/clients/atlan/users.go Outdated
@Pujathacker2210
Pujathacker2210 force-pushed the DATA-4950 branch 2 times, most recently from 51f76d2 to a0a2a5f Compare December 11, 2025 13:47
Comment thread appconfig/default.yaml Outdated
Comment thread config/samples/v1alpha1_group.yaml Outdated
Comment thread config/samples/v1alpha1_group.yaml Outdated
Comment thread pkg/clients/atlan/types.go
Comment thread pkg/clients/atlan/types.go Outdated
Comment thread pkg/clients/atlan/client.go
Comment thread pkg/clients/atlan/team_membership.go Outdated
Comment thread pkg/clients/atlan/users.go
Comment thread pkg/clients/atlan/team_membership.go Outdated
@Pujathacker2210
Pujathacker2210 force-pushed the DATA-4950 branch 3 times, most recently from 07028be to 7fb012b Compare January 21, 2026 12:10
Comment thread internal/controller/group_controller.go Outdated
Comment thread pkg/clients/atlan/oauth.go Outdated
Comment thread pkg/clients/atlan/personas.go
Comment thread pkg/clients/atlan/users.go Outdated
Comment thread pkg/clients/atlan/oauth.go Outdated
Comment thread pkg/clients/atlan/oauth.go Outdated
Comment thread pkg/clients/atlan/users.go Outdated
Comment thread pkg/clients/atlan/oauth.go Outdated
Comment thread pkg/clients/atlan/oauth.go Outdated
@ruagrawa
ruagrawa force-pushed the DATA-4950 branch 2 times, most recently from 175e0bd to 9058006 Compare March 12, 2026 08:00
Comment thread internal/controller/group_controller.go Outdated

r.backendLogger.Info("successfully migrated team details from TeamStore to GroupStore")
return id, nil
return id, transformedGroupName, nil

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not see a reason to return the transformedGroupName because it can be formed from Util more over the signature change to this method can prompt us to make changes to other backends as well.

Comment thread appconfig/default.yaml Outdated
controllerConfig:
maxConcurrentReconciles: 1

No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

@ruagrawa
ruagrawa force-pushed the DATA-4950 branch 2 times, most recently from 8e9ffac to 4f29e6b Compare June 26, 2026 06:50
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 379 files, which is 279 over the limit of 100.

To get a review, narrow the scope:
• coderabbit review --committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4c31e746-86c8-44fe-ae7b-aef6f9cd72d9

📥 Commits

Reviewing files that changed from the base of the PR and between 775d6e8 and cf1830f.

⛔ Files ignored due to path filters (18)
  • go.sum is excluded by !**/*.sum
  • vendor/cel.dev/expr/checked.pb.go is excluded by !**/*.pb.go
  • vendor/cel.dev/expr/eval.pb.go is excluded by !**/*.pb.go
  • vendor/cel.dev/expr/explain.pb.go is excluded by !**/*.pb.go
  • vendor/cel.dev/expr/syntax.pb.go is excluded by !**/*.pb.go
  • vendor/cel.dev/expr/value.pb.go is excluded by !**/*.pb.go
  • vendor/github.com/gojek/valkyrie/glide.lock is excluded by !**/*.lock
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/checked.pb.go is excluded by !**/*.pb.go
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/eval.pb.go is excluded by !**/*.pb.go
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/explain.pb.go is excluded by !**/*.pb.go
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/syntax.pb.go is excluded by !**/*.pb.go
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/value.pb.go is excluded by !**/*.pb.go
  • vendor/google.golang.org/genproto/googleapis/api/httpbody/httpbody.pb.go is excluded by !**/*.pb.go
  • vendor/google.golang.org/genproto/googleapis/rpc/errdetails/error_details.pb.go is excluded by !**/*.pb.go
  • vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go is excluded by !**/*.pb.go
  • vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go is excluded by !**/*.pb.go
  • vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go is excluded by !**/*.pb.go
  • vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go is excluded by !**/*.pb.go
📒 Files selected for processing (443)
  • appconfig/default.yaml
  • config/samples/v1alpha1_group.yaml
  • go.mod
  • internal/controller/group_controller.go
  • pkg/clients/atlan/client.go
  • pkg/clients/atlan/group_params.go
  • pkg/clients/atlan/oauth.go
  • pkg/clients/atlan/personas.go
  • pkg/clients/atlan/team_membership.go
  • pkg/clients/atlan/teams.go
  • pkg/clients/atlan/types.go
  • pkg/clients/atlan/users.go
  • pkg/clients/client.go
  • pkg/clients/fivetran/team_membership.go
  • pkg/clients/gitlab/team_membership.go
  • pkg/clients/redhat_rover/team_membership.go
  • pkg/clients/snowflake/team_membership.go
  • pkg/common/structs/teams.go
  • vendor/cel.dev/expr/BUILD.bazel
  • vendor/cel.dev/expr/MODULE.bazel
  • vendor/github.com/Azure/go-ntlmssp/.gitignore
  • vendor/github.com/Azure/go-ntlmssp/.golangci.yml
  • vendor/github.com/Azure/go-ntlmssp/.travis.yml
  • vendor/github.com/Azure/go-ntlmssp/E2E_README.md
  • vendor/github.com/Azure/go-ntlmssp/README.md
  • vendor/github.com/Azure/go-ntlmssp/authenticate_message.go
  • vendor/github.com/Azure/go-ntlmssp/authheader.go
  • vendor/github.com/Azure/go-ntlmssp/avids.go
  • vendor/github.com/Azure/go-ntlmssp/challenge_message.go
  • vendor/github.com/Azure/go-ntlmssp/internal/md4/README.md
  • vendor/github.com/Azure/go-ntlmssp/internal/md4/md4.go
  • vendor/github.com/Azure/go-ntlmssp/internal/md4/md4block.go
  • vendor/github.com/Azure/go-ntlmssp/messageheader.go
  • vendor/github.com/Azure/go-ntlmssp/negotiate_flags.go
  • vendor/github.com/Azure/go-ntlmssp/negotiate_message.go
  • vendor/github.com/Azure/go-ntlmssp/negotiator.go
  • vendor/github.com/Azure/go-ntlmssp/nlmp.go
  • vendor/github.com/Azure/go-ntlmssp/unicode.go
  • vendor/github.com/Azure/go-ntlmssp/varfield.go
  • vendor/github.com/Azure/go-ntlmssp/version.go
  • vendor/github.com/alicebob/miniredis/v2/CHANGELOG.md
  • vendor/github.com/alicebob/miniredis/v2/cmd_hash.go
  • vendor/github.com/alicebob/miniredis/v2/db.go
  • vendor/github.com/alicebob/miniredis/v2/miniredis.go
  • vendor/github.com/alicebob/miniredis/v2/redis.go
  • vendor/github.com/atlanhq/atlan-go/LICENSE
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/abstract_package.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/asset.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/atlan_fields.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/atlan_tag_cache.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/auth_policy_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/batch_processing.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/constants.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/custom_metadata_cache.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/data_contract_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/errors.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/file.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/fluent_search.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/glossary_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/group_cache.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/group_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/index_search_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/persona_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/purpose_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/role_cache.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/role_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/snowflake_miner.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/table_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/token_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/typedef_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/user_cache.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/user_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/assets/workflow_client.go
  • vendor/github.com/atlanhq/atlan-go/atlan/enums.go
  • vendor/github.com/atlanhq/atlan-go/atlan/logger/logger.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/file.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/response.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/search.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/access_control.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/api_tokens.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/asset.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/column.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/connection.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/datacontract.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/glossary.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/glossary_category.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/glossary_term.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/group.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/materialisedview.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/role.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/table.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/user.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/view.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/structs/workflow.go
  • vendor/github.com/atlanhq/atlan-go/atlan/model/typedef.go
  • vendor/github.com/atlanhq/atlan-go/atlan/structs.go
  • vendor/github.com/atlanhq/atlan-go/atlan/utils.go
  • vendor/github.com/atlanhq/atlan-go/config/.golangci.yaml
  • vendor/github.com/atlanhq/atlan-go/config/VERSION
  • vendor/github.com/atlanhq/atlan-go/config/version.go
  • vendor/github.com/go-ldap/ldap/v3/control.go
  • vendor/github.com/go-ldap/ldap/v3/error.go
  • vendor/github.com/go-ldap/ldap/v3/extended.go
  • vendor/github.com/go-ldap/ldap/v3/postaladdress.go
  • vendor/github.com/go-ldap/ldap/v3/search.go
  • vendor/github.com/go-ldap/ldap/v3/whoami.go
  • vendor/github.com/goccy/go-yaml/ast/ast.go
  • vendor/github.com/goccy/go-yaml/decode.go
  • vendor/github.com/goccy/go-yaml/encode.go
  • vendor/github.com/goccy/go-yaml/internal/format/format.go
  • vendor/github.com/goccy/go-yaml/option.go
  • vendor/github.com/goccy/go-yaml/parser/parser.go
  • vendor/github.com/goccy/go-yaml/path.go
  • vendor/github.com/goccy/go-yaml/scanner/scanner.go
  • vendor/github.com/goccy/go-yaml/yaml.go
  • vendor/github.com/gojek/heimdall/v7/.golangci.yml
  • vendor/github.com/gojek/heimdall/v7/.travis.yml
  • vendor/github.com/gojek/heimdall/v7/Makefile
  • vendor/github.com/gojek/heimdall/v7/README.md
  • vendor/github.com/gojek/heimdall/v7/backoff.go
  • vendor/github.com/gojek/heimdall/v7/httpclient/client.go
  • vendor/github.com/gojek/heimdall/v7/hystrix/hystrix_client.go
  • vendor/github.com/gojek/heimdall/v7/hystrix/options.go
  • vendor/github.com/gojek/heimdall/v7/internal/ctx.go
  • vendor/github.com/gojek/heimdall/v7/internal/multi_error.go
  • vendor/github.com/gojek/heimdall/v7/internal/request_helper.go
  • vendor/github.com/gojek/heimdall/v7/internal/sleep.go
  • vendor/github.com/gojek/valkyrie/.gitignore
  • vendor/github.com/gojek/valkyrie/.travis.yml
  • vendor/github.com/gojek/valkyrie/AUTHORS.md
  • vendor/github.com/gojek/valkyrie/CHANGELOG.md
  • vendor/github.com/gojek/valkyrie/CONTRIBUTING.md
  • vendor/github.com/gojek/valkyrie/LICENSE
  • vendor/github.com/gojek/valkyrie/Makefile
  • vendor/github.com/gojek/valkyrie/README.md
  • vendor/github.com/gojek/valkyrie/glide.yaml
  • vendor/github.com/gojek/valkyrie/multierror.go
  • vendor/github.com/k0kubun/go-ansi/LICENSE.txt
  • vendor/github.com/k0kubun/go-ansi/README.md
  • vendor/github.com/k0kubun/go-ansi/cursor.go
  • vendor/github.com/k0kubun/go-ansi/cursor_windows.go
  • vendor/github.com/k0kubun/go-ansi/display.go
  • vendor/github.com/k0kubun/go-ansi/display_windows.go
  • vendor/github.com/k0kubun/go-ansi/output.go
  • vendor/github.com/k0kubun/go-ansi/output_windows.go
  • vendor/github.com/k0kubun/go-ansi/print.go
  • vendor/github.com/k0kubun/go-ansi/syscall_windows.go
  • vendor/github.com/matoous/go-nanoid/.gitignore
  • vendor/github.com/matoous/go-nanoid/.goreleaser.yml
  • vendor/github.com/matoous/go-nanoid/LICENSE
  • vendor/github.com/matoous/go-nanoid/Makefile
  • vendor/github.com/matoous/go-nanoid/README.md
  • vendor/github.com/matoous/go-nanoid/gonanoid.go
  • vendor/github.com/mitchellh/colorstring/.travis.yml
  • vendor/github.com/mitchellh/colorstring/LICENSE
  • vendor/github.com/mitchellh/colorstring/README.md
  • vendor/github.com/mitchellh/colorstring/colorstring.go
  • vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md
  • vendor/github.com/onsi/ginkgo/v2/README.md
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go
  • vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go
  • vendor/github.com/onsi/ginkgo/v2/types/config.go
  • vendor/github.com/onsi/ginkgo/v2/types/flags.go
  • vendor/github.com/onsi/ginkgo/v2/types/version.go
  • vendor/github.com/onsi/gomega/CHANGELOG.md
  • vendor/github.com/onsi/gomega/gomega_dsl.go
  • vendor/github.com/redis/go-redis/extra/rediscmd/v9/rediscmd.go
  • vendor/github.com/redis/go-redis/extra/redisotel/v9/metrics.go
  • vendor/github.com/redis/go-redis/v9/.gitignore
  • vendor/github.com/redis/go-redis/v9/.golangci.yml
  • vendor/github.com/redis/go-redis/v9/Makefile
  • vendor/github.com/redis/go-redis/v9/README.md
  • vendor/github.com/redis/go-redis/v9/RELEASE-NOTES.md
  • vendor/github.com/redis/go-redis/v9/adapters.go
  • vendor/github.com/redis/go-redis/v9/auth/reauth_credentials_listener.go
  • vendor/github.com/redis/go-redis/v9/cluster_commands.go
  • vendor/github.com/redis/go-redis/v9/command.go
  • vendor/github.com/redis/go-redis/v9/command_policy_resolver.go
  • vendor/github.com/redis/go-redis/v9/commands.go
  • vendor/github.com/redis/go-redis/v9/docker-compose.yml
  • vendor/github.com/redis/go-redis/v9/error.go
  • vendor/github.com/redis/go-redis/v9/geo_commands.go
  • vendor/github.com/redis/go-redis/v9/hotkeys_commands.go
  • vendor/github.com/redis/go-redis/v9/internal/interfaces/interfaces.go
  • vendor/github.com/redis/go-redis/v9/internal/maintnotifications/logs/log_messages.go
  • vendor/github.com/redis/go-redis/v9/internal/otel/metrics.go
  • vendor/github.com/redis/go-redis/v9/internal/pool/conn.go
  • vendor/github.com/redis/go-redis/v9/internal/pool/conn_state.go
  • vendor/github.com/redis/go-redis/v9/internal/pool/pool.go
  • vendor/github.com/redis/go-redis/v9/internal/pool/pubsub.go
  • vendor/github.com/redis/go-redis/v9/internal/proto/redis_errors.go
  • vendor/github.com/redis/go-redis/v9/internal/routing/aggregator.go
  • vendor/github.com/redis/go-redis/v9/internal/routing/policy.go
  • vendor/github.com/redis/go-redis/v9/internal/routing/shard_picker.go
  • vendor/github.com/redis/go-redis/v9/internal/semaphore.go
  • vendor/github.com/redis/go-redis/v9/internal/util/atomic_max.go
  • vendor/github.com/redis/go-redis/v9/internal/util/atomic_min.go
  • vendor/github.com/redis/go-redis/v9/internal/util/math.go
  • vendor/github.com/redis/go-redis/v9/internal/util/unsafe.go
  • vendor/github.com/redis/go-redis/v9/json.go
  • vendor/github.com/redis/go-redis/v9/list_commands.go
  • vendor/github.com/redis/go-redis/v9/maintnotifications/FEATURES.md
  • vendor/github.com/redis/go-redis/v9/maintnotifications/README.md
  • vendor/github.com/redis/go-redis/v9/maintnotifications/config.go
  • vendor/github.com/redis/go-redis/v9/maintnotifications/handoff_worker.go
  • vendor/github.com/redis/go-redis/v9/maintnotifications/manager.go
  • vendor/github.com/redis/go-redis/v9/maintnotifications/push_notification_handler.go
  • vendor/github.com/redis/go-redis/v9/options.go
  • vendor/github.com/redis/go-redis/v9/osscluster.go
  • vendor/github.com/redis/go-redis/v9/osscluster_router.go
  • vendor/github.com/redis/go-redis/v9/otel.go
  • vendor/github.com/redis/go-redis/v9/probabilistic.go
  • vendor/github.com/redis/go-redis/v9/pubsub.go
  • vendor/github.com/redis/go-redis/v9/pubsub_commands.go
  • vendor/github.com/redis/go-redis/v9/redis.go
  • vendor/github.com/redis/go-redis/v9/ring.go
  • vendor/github.com/redis/go-redis/v9/search_commands.go
  • vendor/github.com/redis/go-redis/v9/sentinel.go
  • vendor/github.com/redis/go-redis/v9/set_commands.go
  • vendor/github.com/redis/go-redis/v9/sortedset_commands.go
  • vendor/github.com/redis/go-redis/v9/stream_commands.go
  • vendor/github.com/redis/go-redis/v9/string_commands.go
  • vendor/github.com/redis/go-redis/v9/timeseries_commands.go
  • vendor/github.com/redis/go-redis/v9/universal.go
  • vendor/github.com/redis/go-redis/v9/version.go
  • vendor/github.com/rivo/uniseg/LICENSE.txt
  • vendor/github.com/rivo/uniseg/README.md
  • vendor/github.com/rivo/uniseg/doc.go
  • vendor/github.com/rivo/uniseg/eastasianwidth.go
  • vendor/github.com/rivo/uniseg/emojipresentation.go
  • vendor/github.com/rivo/uniseg/gen_breaktest.go
  • vendor/github.com/rivo/uniseg/gen_properties.go
  • vendor/github.com/rivo/uniseg/grapheme.go
  • vendor/github.com/rivo/uniseg/graphemeproperties.go
  • vendor/github.com/rivo/uniseg/graphemerules.go
  • vendor/github.com/rivo/uniseg/line.go
  • vendor/github.com/rivo/uniseg/lineproperties.go
  • vendor/github.com/rivo/uniseg/linerules.go
  • vendor/github.com/rivo/uniseg/properties.go
  • vendor/github.com/rivo/uniseg/sentence.go
  • vendor/github.com/rivo/uniseg/sentenceproperties.go
  • vendor/github.com/rivo/uniseg/sentencerules.go
  • vendor/github.com/rivo/uniseg/step.go
  • vendor/github.com/rivo/uniseg/width.go
  • vendor/github.com/rivo/uniseg/word.go
  • vendor/github.com/rivo/uniseg/wordproperties.go
  • vendor/github.com/rivo/uniseg/wordrules.go
  • vendor/github.com/schollz/progressbar/v3/.gitignore
  • vendor/github.com/schollz/progressbar/v3/.travis.yml
  • vendor/github.com/schollz/progressbar/v3/LICENSE
  • vendor/github.com/schollz/progressbar/v3/README.md
  • vendor/github.com/schollz/progressbar/v3/progressbar.go
  • vendor/github.com/schollz/progressbar/v3/spinners.go
  • vendor/go.opentelemetry.io/otel/.golangci.yml
  • vendor/go.opentelemetry.io/otel/CHANGELOG.md
  • vendor/go.opentelemetry.io/otel/Makefile
  • vendor/go.opentelemetry.io/otel/README.md
  • vendor/go.opentelemetry.io/otel/baggage/baggage.go
  • vendor/go.opentelemetry.io/otel/dependencies.Dockerfile
  • vendor/go.opentelemetry.io/otel/internal/errorhandler/errorhandler.go
  • vendor/go.opentelemetry.io/otel/internal/global/handler.go
  • vendor/go.opentelemetry.io/otel/internal/global/state.go
  • vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go
  • vendor/go.opentelemetry.io/otel/metric/asyncint64.go
  • vendor/go.opentelemetry.io/otel/metric/meter.go
  • vendor/go.opentelemetry.io/otel/metric/syncfloat64.go
  • vendor/go.opentelemetry.io/otel/metric/syncint64.go
  • vendor/go.opentelemetry.io/otel/propagation/baggage.go
  • vendor/go.opentelemetry.io/otel/trace/tracestate.go
  • vendor/go.opentelemetry.io/otel/version.go
  • vendor/go.opentelemetry.io/otel/versions.yaml
  • vendor/go.uber.org/atomic/.codecov.yml
  • vendor/go.uber.org/atomic/.gitignore
  • vendor/go.uber.org/atomic/CHANGELOG.md
  • vendor/go.uber.org/atomic/Makefile
  • vendor/go.uber.org/atomic/README.md
  • vendor/go.uber.org/atomic/bool.go
  • vendor/go.uber.org/atomic/bool_ext.go
  • vendor/go.uber.org/atomic/doc.go
  • vendor/go.uber.org/atomic/duration.go
  • vendor/go.uber.org/atomic/duration_ext.go
  • vendor/go.uber.org/atomic/error.go
  • vendor/go.uber.org/atomic/error_ext.go
  • vendor/go.uber.org/atomic/float32.go
  • vendor/go.uber.org/atomic/float32_ext.go
  • vendor/go.uber.org/atomic/float64.go
  • vendor/go.uber.org/atomic/float64_ext.go
  • vendor/go.uber.org/atomic/gen.go
  • vendor/go.uber.org/atomic/int32.go
  • vendor/go.uber.org/atomic/int64.go
  • vendor/go.uber.org/atomic/nocmp.go
  • vendor/go.uber.org/atomic/pointer_go118.go
  • vendor/go.uber.org/atomic/pointer_go118_pre119.go
  • vendor/go.uber.org/atomic/pointer_go119.go
  • vendor/go.uber.org/atomic/string.go
  • vendor/go.uber.org/atomic/string_ext.go
  • vendor/go.uber.org/atomic/time.go
  • vendor/go.uber.org/atomic/time_ext.go
  • vendor/go.uber.org/atomic/uint32.go
  • vendor/go.uber.org/atomic/uint64.go
  • vendor/go.uber.org/atomic/uintptr.go
  • vendor/go.uber.org/atomic/unsafe_pointer.go
  • vendor/go.uber.org/atomic/value.go
  • vendor/golang.org/x/exp/slog/attr.go
  • vendor/golang.org/x/exp/slog/doc.go
  • vendor/golang.org/x/exp/slog/handler.go
  • vendor/golang.org/x/exp/slog/internal/buffer/buffer.go
  • vendor/golang.org/x/exp/slog/internal/ignorepc.go
  • vendor/golang.org/x/exp/slog/json_handler.go
  • vendor/golang.org/x/exp/slog/level.go
  • vendor/golang.org/x/exp/slog/logger.go
  • vendor/golang.org/x/exp/slog/noplog.bench
  • vendor/golang.org/x/exp/slog/record.go
  • vendor/golang.org/x/exp/slog/text_handler.go
  • vendor/golang.org/x/exp/slog/value.go
  • vendor/golang.org/x/exp/slog/value_119.go
  • vendor/golang.org/x/exp/slog/value_120.go
  • vendor/golang.org/x/net/html/node.go
  • vendor/golang.org/x/net/html/nodetype_string.go
  • vendor/golang.org/x/net/http2/client_priority_go126.go
  • vendor/golang.org/x/net/http2/client_priority_go127.go
  • vendor/golang.org/x/net/http2/frame.go
  • vendor/golang.org/x/net/http2/http2.go
  • vendor/golang.org/x/net/http2/server.go
  • vendor/golang.org/x/net/http2/transport.go
  • vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
  • vendor/golang.org/x/net/internal/httpsfv/httpsfv.go
  • vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go
  • vendor/golang.org/x/net/internal/socket/socket.go
  • vendor/golang.org/x/net/internal/socket/sys.go
  • vendor/golang.org/x/net/internal/socket/sys_posix.go
  • vendor/golang.org/x/net/ipv4/header.go
  • vendor/golang.org/x/net/ipv6/control_rfc2292_unix.go
  • vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go
  • vendor/golang.org/x/oauth2/deviceauth.go
  • vendor/golang.org/x/oauth2/oauth2.go
  • vendor/golang.org/x/oauth2/pkce.go
  • vendor/golang.org/x/oauth2/token.go
  • vendor/golang.org/x/oauth2/transport.go
  • vendor/golang.org/x/sys/cpu/cpu_arm64.go
  • vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
  • vendor/golang.org/x/sys/cpu/cpu_windows_arm64.go
  • vendor/golang.org/x/sys/unix/ioctl_signed.go
  • vendor/golang.org/x/sys/unix/ioctl_unsigned.go
  • vendor/golang.org/x/sys/unix/syscall_solaris.go
  • vendor/golang.org/x/sys/unix/syscall_unix.go
  • vendor/golang.org/x/sys/windows/syscall_windows.go
  • vendor/golang.org/x/sys/windows/types_windows.go
  • vendor/golang.org/x/sys/windows/zsyscall_windows.go
  • vendor/golang.org/x/text/message/catalog/catalog.go
  • vendor/golang.org/x/text/message/catalog/dict.go
  • vendor/golang.org/x/text/message/catalog/go19.go
  • vendor/golang.org/x/text/message/catalog/gopre19.go
  • vendor/golang.org/x/text/secure/bidirule/bidirule.go
  • vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go
  • vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go
  • vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go
  • vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go
  • vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go
  • vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go
  • vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go
  • vendor/golang.org/x/text/unicode/bidi/tables17.0.0.go
  • vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go
  • vendor/golang.org/x/text/unicode/norm/forminfo.go
  • vendor/golang.org/x/text/unicode/norm/tables10.0.0.go
  • vendor/golang.org/x/text/unicode/norm/tables11.0.0.go
  • vendor/golang.org/x/text/unicode/norm/tables12.0.0.go
  • vendor/golang.org/x/text/unicode/norm/tables13.0.0.go
  • vendor/golang.org/x/text/unicode/norm/tables15.0.0.go
  • vendor/golang.org/x/text/unicode/norm/tables9.0.0.go
  • vendor/google.golang.org/grpc/CONTRIBUTING.md
  • vendor/google.golang.org/grpc/MAINTAINERS.md
  • vendor/google.golang.org/grpc/README.md
  • vendor/google.golang.org/grpc/balancer/balancer.go
  • vendor/google.golang.org/grpc/balancer/endpointsharding/endpointsharding.go
  • vendor/google.golang.org/grpc/balancer/pickfirst/internal/internal.go
  • vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go
  • vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go
  • vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go
  • vendor/google.golang.org/grpc/balancer/subconn.go
  • vendor/google.golang.org/grpc/balancer_wrapper.go
  • vendor/google.golang.org/grpc/clientconn.go
  • vendor/google.golang.org/grpc/credentials/credentials.go
  • vendor/google.golang.org/grpc/credentials/insecure/insecure.go
  • vendor/google.golang.org/grpc/credentials/tls.go
  • vendor/google.golang.org/grpc/dialoptions.go
  • vendor/google.golang.org/grpc/encoding/encoding.go
  • vendor/google.golang.org/grpc/encoding/gzip/gzip.go
  • vendor/google.golang.org/grpc/encoding/internal/internal.go
  • vendor/google.golang.org/grpc/encoding/proto/proto.go
  • vendor/google.golang.org/grpc/experimental/stats/metricregistry.go
  • vendor/google.golang.org/grpc/experimental/stats/metrics.go
  • vendor/google.golang.org/grpc/interceptor.go
  • vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go
  • vendor/google.golang.org/grpc/internal/balancer/weight/weight.go
  • vendor/google.golang.org/grpc/internal/buffer/unbounded.go
  • vendor/google.golang.org/grpc/internal/channelz/trace.go
  • vendor/google.golang.org/grpc/internal/credentials/credentials.go
  • vendor/google.golang.org/grpc/internal/envconfig/envconfig.go
  • vendor/google.golang.org/grpc/internal/envconfig/xds.go
  • vendor/google.golang.org/grpc/internal/experimental.go
  • vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go
  • vendor/google.golang.org/grpc/internal/grpcsync/event.go
  • vendor/google.golang.org/grpc/internal/idle/idle.go
  • vendor/google.golang.org/grpc/internal/internal.go
  • vendor/google.golang.org/grpc/internal/resolver/delegatingresolver/delegatingresolver.go
  • vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go
  • vendor/google.golang.org/grpc/internal/stats/metrics_recorder_list.go
  • vendor/google.golang.org/grpc/internal/stats/stats.go
  • vendor/google.golang.org/grpc/internal/status/status.go
  • vendor/google.golang.org/grpc/internal/transport/client_stream.go
  • vendor/google.golang.org/grpc/internal/transport/controlbuf.go
  • vendor/google.golang.org/grpc/internal/transport/flowcontrol.go
  • vendor/google.golang.org/grpc/internal/transport/handler_server.go
  • vendor/google.golang.org/grpc/internal/transport/http2_client.go
  • vendor/google.golang.org/grpc/internal/transport/http2_server.go
  • vendor/google.golang.org/grpc/internal/transport/http_util.go
  • vendor/google.golang.org/grpc/internal/transport/server_stream.go
  • vendor/google.golang.org/grpc/internal/transport/transport.go
  • vendor/google.golang.org/grpc/mem/buffer_pool.go
  • vendor/google.golang.org/grpc/mem/buffer_slice.go
  • vendor/google.golang.org/grpc/mem/buffers.go
  • vendor/google.golang.org/grpc/picker_wrapper.go
  • vendor/google.golang.org/grpc/preloader.go
  • vendor/google.golang.org/grpc/resolver/resolver.go
  • vendor/google.golang.org/grpc/resolver_wrapper.go
  • vendor/google.golang.org/grpc/rpc_util.go
  • vendor/google.golang.org/grpc/server.go
  • vendor/google.golang.org/grpc/stats/handlers.go
  • vendor/google.golang.org/grpc/stats/stats.go
  • vendor/google.golang.org/grpc/stream.go
  • vendor/google.golang.org/grpc/version.go
  • vendor/google.golang.org/protobuf/internal/filedesc/desc.go
  • vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go
  • vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
  • vendor/google.golang.org/protobuf/internal/version/version.go
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc.go
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go
  • vendor/google.golang.org/protobuf/reflect/protodesc/proto.go
  • vendor/modules.txt

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Pujathacker2210 and others added 8 commits July 30, 2026 17:14
Signed-off-by: Pujathacker2210 <pthacker@redhat.com>
…p params via the ReconcileGroupParams function

Signed-off-by: Pujathacker2210 <pthacker@redhat.com>
Signed-off-by: Pujathacker2210 <pthacker@redhat.com>
Signed-off-by: Pujathacker2210 <pthacker@redhat.com>
Signed-off-by: Ruchi Agrawal <ruagrawa@redhat.com>
Signed-off-by: Ruchi Agrawal <ruagrawa@redhat.com>
Signed-off-by: Ruchi Agrawal <ruagrawa@redhat.com>
Signed-off-by: Ruchi Agrawal <ruagrawa@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
- Call ReconcileGroupParams for Atlan backend even without explicit group_params
  to enable default persona assignment
- Use ToAtlanInternalName() to convert group names to Atlan's internal format
  (lowercase with underscores) for consistent persona assignment
- Add pagination support to FetchAllTeams
- Add copyright header to teams.go

Signed-off-by: Ruchi Agrawal <ruagrawa@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
ruagrawa and others added 2 commits July 30, 2026 17:40
- Add TeamName field to TeamParams struct instead of adding a parameter
  to the interface method
- Revert interface signature to original: ReconcileGroupParams(ctx, teamID, groupParams)
- Other backends (snowflake, fivetran, gitlab, rover) remain unchanged
  as they don't use the TeamName field
- Controller sets backendGroupParams.TeamName for backends that need it
- Atlan reads team name from groupParams.TeamName for persona assignment

Signed-off-by: Ruchi Agrawal <ruagrawa@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Ruchi Agrawal <ruagrawa@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Comment thread appconfig/default.yaml
# Set to true if users are auto-created via SSO login (skip manual user creation)
sso_sync: true
# Default persona to assign all groups
default_persona: "prod"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we should have default as prod, it should be literally a default one which has no permission, only add users, and not prod, because we are always giving prod persona even if not needed.

type TeamParams struct {
Property string `json:"property"`
Value []string `json:"value"`
TeamName string `json:"team_name,omitempty"` // Set by controller for backends that need it

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess TeamName was added for Atlan persona but if personas should be moving to operator, then I dont think we need this field.

Comment thread pkg/clients/client.go
// Returns the list of users present under a team
FetchTeamMembersByTeamID(ctx context.Context, teamID string) (map[string]*structs.User, error)
// ReconcileGroupParams reconciles backend-specific parameters for a group/team.
// Backends that need the team name can read it from groupParams.TeamName.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont think we will be using TeamName so this comment is not valid and could be misleading..

Comment thread appconfig/default.yaml
url: "https://yourcompany.atlan.com"
api_token: file|path/to/atlan_api_token
# Alias given during setting up identity_provider in the application
identity_provider_alias: "saml|azure"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is "saml|azure" a place holder? What is thwe actual value this is should have.

defaultPersona string
paginationLimit int
ssoSync bool
ldapSync bool

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a short comment on ssoSync vs ldapSync? Easy to confuse which one is for what..

defer wg.Done()
defer func() { <-sem }()

url := fmt.Sprintf("%s/api/service/users/%s/groups", ac.url, uid)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Linked to https://github.com/redhat-data-and-ai/usernaut/pull/162/changes#r3768422706

I guess it will be /users//groups rather than it should be /users//groups

"qualifiedName": persona.QualifiedName,
"name": persona.Name,
"personaGroups": groups,
"isAccessControlEnabled": true,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this for and why we setting this always when updating the Persona?


case "":
// No explicit group params specified, but still assign default persona if configured
if ac.defaultPersona != "" {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


if groupParams.TeamName == "" {
log.Warn("team name is empty, cannot reconcile group params")
return nil

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe we should return the error or else we might skip the persona assign..

// Reconcile group params for backends that need it
// - Call when Property is explicitly specified in group_params, OR
// - Call for Atlan backend (which may assign default persona even without explicit params)
if backendGroupParams.Property != "" || backend.Type == "atlan" {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does it have to be hardcoded?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants