Skip to content

Allow resource permissions to override root and target defaults - #7291

Open
lennartkats-db wants to merge 9 commits into
mainfrom
factory/dabs/aabd17eaae87
Open

lennartkats-db wants to merge 9 commits into
mainfrom
factory/dabs/aabd17eaae87

Conversation

@lennartkats-db

@lennartkats-db lennartkats-db commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Changes

Fixes #7032

Remove overlap warnings when resource permissions and bundle or target permissions name the same principal. This lets the layered configuration in the issue pass bundle validate --strict while retaining the resource permission. The rule covers supported resources, users, groups, and service principals, including resolved complex variables. Effective resource permissions are unchanged.

Correct the cluster policy and secret scope schema descriptions to match which resources inherit bundle or target permissions.

Why

In #7032, a group has CAN_VIEW on a target and CAN_MANAGE_RUN on a job. Validation kept the job permission but emitted a warning, which made strict validation fail. The same resource-over-default rule applies to bundle-level permissions.

Tests

  • ./task generate-schema passed after the documentation correction.
  • go test ./bundle/config/mutator/resourcemutator ./bundle/internal/schema ./bundle/config -count=1 passed with Go 1.27.4.
  • The CI regression report passed all four changed acceptance cases on the prior PR head. Each case fails on main, confirming that the warning regression is detected for both DMS settings.
  • Local acceptance setup could not start because the configured Go proxy returned 403 module is blocked for github.com/BurntSushi/[email protected].

@lennartkats-db lennartkats-db added DABs DABs related issues software-factory PR produced by the software factories task labels Nov 2, 2026
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Integration test report

Commit: e5e4408

Run: 43637624449

Env 💚​RECOVERED ✅​pass 🙈​skip Time
💚​ aws linux-2core-8gb 1 270 17 3:29
💚​ aws-windows-latest-4core-16gb 1 272 15 3:24
💚​ azure linux-2core-8gb 1 269 17 3:25
💚​ azure-windows-latest-4core-16gb 1 271 15 3:16
💚​ gcp linux-2core-8gb 1 270 17 3:30
💚​ gcp-windows-latest-4core-16gb 1 272 15 3:35
Test Name aws linux-2core-8gb aws-windows-latest-4core-16gb azure linux-2core-8gb azure-windows-latest-4core-16gb gcp linux-2core-8gb gcp-windows-latest-4core-16gb
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
Top 3 slowest tests (at least 2 minutes):
duration env testname
3:29 gcp-windows-latest-4core-16gb TestAccept
3:20 aws-windows-latest-4core-16gb TestAccept
3:14 azure-windows-latest-4core-16gb TestAccept

@lennartkats-db lennartkats-db added software-factory PR produced by the software factories task and removed software-factory PR produced by the software factories task labels Nov 3, 2026
@lennartkats-db lennartkats-db changed the title [draft] Fix bundle/config/mutator/resourcemutator/apply_bundle_permissions.go [draft] Allow job permissions to override target group permissions without warnings Nov 4, 2026
@lennartkats-db
lennartkats-db marked this pull request as ready for review November 4, 2026 19:21
@lennartkats-db
lennartkats-db requested review from a team as code owners November 4, 2026 19:21
@lennartkats-db
lennartkats-db marked this pull request as draft November 4, 2026 19:21
@lennartkats-db
lennartkats-db marked this pull request as ready for review November 4, 2026 21:59
@lennartkats-db lennartkats-db changed the title [draft] Allow job permissions to override target group permissions without warnings [draft] Allow resource permissions to override target defaults Nov 6, 2026
@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Commit: e5e44085b | Workflow run

Regression test report

Selected 2 changed tests (limit=20, 0 not selected)

4 tests: regression=4 unreleased=0 coverage=0 failing=0
test branch main (2699068) latest (v1.26.0)
TestAccept/bundle/validate/permissions_overlap/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/permissions_overlap/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/permissions_target/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/permissions_target/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/permissions_overlap/DMS=: branch ✅ | main (2699068) ❌ | latest (v1.26.0) ❌

main (2699068):

acceptance_test.go:1374: Diff:
        --- bundle/validate/permissions_overlap/output.txt
        +++ /tmp/TestAcceptbundlevalidatepermissions_overlapDMS=2024822943/002/output.txt
        @@ -1,5 +1,7 @@
         
         >>> [CLI] bundle validate -o json
        +Warning: 'jobs' already has permissions set for '[email protected]' user name
        +
         Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
         If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
         
        @@ -44,6 +46,8 @@
         }
         
         >>> [CLI] bundle validate --strict
        +Warning: 'jobs' already has permissions set for '[email protected]' user name
        +
         Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
         If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
         
        @@ -62,4 +66,7 @@
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle/default
         
        -Found 1 recommendation
        +Found 1 warning and 1 recommendation
        +Error: 1 warning was found. Warnings are treated as errors in strict mode
        +
        +Exit code: 1
        
    acceptance_test.go:1164: Test produced unexpected files:
        .databricks/.gitignore

latest (v1.26.0): same output as main (2699068)

TestAccept/bundle/validate/permissions_overlap/DMS=true: branch ✅ | main (2699068) ❌ | latest (v1.26.0) ❌

main (2699068):

acceptance_test.go:1374: Diff:
        --- bundle/validate/permissions_overlap/output.txt
        +++ /tmp/TestAcceptbundlevalidatepermissions_overlapDMS=true2382108080/002/output.txt
        @@ -1,5 +1,7 @@
         
         >>> [CLI] bundle validate -o json
        +Warning: 'jobs' already has permissions set for '[email protected]' user name
        +
         Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
         If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
         
        @@ -44,6 +46,8 @@
         }
         
         >>> [CLI] bundle validate --strict
        +Warning: 'jobs' already has permissions set for '[email protected]' user name
        +
         Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
         If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
         
        @@ -62,4 +66,7 @@
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle/default
         
        -Found 1 recommendation
        +Found 1 warning and 1 recommendation
        +Error: 1 warning was found. Warnings are treated as errors in strict mode
        +
        +Exit code: 1
        
    acceptance_test.go:1164: Test produced unexpected files:
        .databricks/.gitignore
FAIL

latest (v1.26.0): same output as main (2699068)

TestAccept/bundle/validate/permissions_target/DMS=: branch ✅ | main (2699068) ❌ | latest (v1.26.0) ❌

main (2699068):

acceptance_test.go:1374: Diff:
        --- bundle/validate/permissions_target/output.txt
        +++ /tmp/TestAcceptbundlevalidatepermissions_targetDMS=1845295370/002/output.txt
        @@ -1,113 +1,29 @@
         
         >>> [CLI] bundle validate --strict -t literal -o json
        -Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
        -If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
        +Warning: 'jobs' already has permissions set for 'developers' group
         
        -Consider using a adding a top-level permissions section such as the following:
        +Warning: 'jobs' already has permissions set for '[email protected]' user name
         
        -  permissions:
        -    - user_name: [USERNAME]
        -      level: CAN_MANAGE
        +Warning: 'jobs' already has permissions set for 'reader-sp' service principal name
         
        -See https://docs.databricks.com/dev-tools/bundles/permissions.html to learn more about permission configuration.
        -  in databricks.yml:9:14
        +Warning: 'jobs' already has permissions set for 'developers' group
         
        -{
        -  "jobs": {
        -    "root_job": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_MANAGE_RUN"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ],
        -    "target_job": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_MANAGE_RUN"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ]
        -  },
        -  "pipelines": {
        -    "root_pipeline": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_RUN"
        -      },
        -      {
        -        "level": "CAN_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ],
        -    "target_pipeline": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_RUN"
        -      },
        -      {
        -        "level": "CAN_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ]
        -  }
        -}
        +Warning: 'jobs' already has permissions set for '[email protected]' user name
         
        ->>> [CLI] bundle validate --strict -t complex -o json
        +Warning: 'jobs' already has permissions set for 'reader-sp' service principal name
        +
        +Warning: 'pipelines' already has permissions set for 'developers' group
        +
        +Warning: 'pipelines' already has permissions set for '[email protected]' user name
        +
        +Warning: 'pipelines' already has permissions set for 'reader-sp' service principal name
        +
        +Warning: 'pipelines' already has permissions set for 'developers' group
        +
        +Warning: 'pipelines' already has permissions set for '[email protected]' user name
        +
        +Warning: 'pipelines' already has permissions set for 'reader-sp' service principal name
        +
         Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
         If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
         
        @@ -118,99 +29,8 @@
               level: CAN_MANAGE
         
         See https://docs.databricks.com/dev-tools/bundles/permissions.html to learn more about permission configuration.
        -  in databricks.yml:43:18
        +  in databricks.yml:9:14
         
        -{
        -  "jobs": {
        -    "root_job": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_MANAGE_RUN"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ],
        -    "target_job": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_MANAGE_RUN"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ]
        -  },
        -  "pipelines": {
        -    "root_pipeline": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_RUN"
        -      },
        -      {
        -        "level": "CAN_RUN",
        -        "user_name": "[email protected]"
        -      },
... (43 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)

latest (v1.26.0): same output as main (2699068)

TestAccept/bundle/validate/permissions_target/DMS=true: branch ✅ | main (2699068) ❌ | latest (v1.26.0) ❌

main (2699068):

acceptance_test.go:1374: Diff:
        --- bundle/validate/permissions_target/output.txt
        +++ /tmp/TestAcceptbundlevalidatepermissions_targetDMS=true3029423467/002/output.txt
        @@ -1,113 +1,29 @@
         
         >>> [CLI] bundle validate --strict -t literal -o json
        -Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
        -If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
        +Warning: 'jobs' already has permissions set for 'developers' group
         
        -Consider using a adding a top-level permissions section such as the following:
        +Warning: 'jobs' already has permissions set for '[email protected]' user name
         
        -  permissions:
        -    - user_name: [USERNAME]
        -      level: CAN_MANAGE
        +Warning: 'jobs' already has permissions set for 'reader-sp' service principal name
         
        -See https://docs.databricks.com/dev-tools/bundles/permissions.html to learn more about permission configuration.
        -  in databricks.yml:9:14
        +Warning: 'jobs' already has permissions set for 'developers' group
         
        -{
        -  "jobs": {
        -    "root_job": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_MANAGE_RUN"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ],
        -    "target_job": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_MANAGE_RUN"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ]
        -  },
        -  "pipelines": {
        -    "root_pipeline": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_RUN"
        -      },
        -      {
        -        "level": "CAN_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ],
        -    "target_pipeline": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_RUN"
        -      },
        -      {
        -        "level": "CAN_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ]
        -  }
        -}
        +Warning: 'jobs' already has permissions set for '[email protected]' user name
         
        ->>> [CLI] bundle validate --strict -t complex -o json
        +Warning: 'jobs' already has permissions set for 'reader-sp' service principal name
        +
        +Warning: 'pipelines' already has permissions set for 'developers' group
        +
        +Warning: 'pipelines' already has permissions set for '[email protected]' user name
        +
        +Warning: 'pipelines' already has permissions set for 'reader-sp' service principal name
        +
        +Warning: 'pipelines' already has permissions set for 'developers' group
        +
        +Warning: 'pipelines' already has permissions set for '[email protected]' user name
        +
        +Warning: 'pipelines' already has permissions set for 'reader-sp' service principal name
        +
         Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
         If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
         
        @@ -118,99 +29,8 @@
               level: CAN_MANAGE
         
         See https://docs.databricks.com/dev-tools/bundles/permissions.html to learn more about permission configuration.
        -  in databricks.yml:43:18
        +  in databricks.yml:9:14
         
        -{
        -  "jobs": {
        -    "root_job": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_MANAGE_RUN"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ],
        -    "target_job": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_MANAGE_RUN"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "user_name": "[email protected]"
        -      },
        -      {
        -        "level": "CAN_MANAGE_RUN",
        -        "service_principal_name": "reader-sp"
        -      },
        -      {
        -        "group_name": "inherited",
        -        "level": "CAN_VIEW"
        -      },
        -      {
        -        "level": "IS_OWNER",
        -        "user_name": "[USERNAME]"
        -      }
        -    ]
        -  },
        -  "pipelines": {
        -    "root_pipeline": [
        -      {
        -        "group_name": "developers",
        -        "level": "CAN_RUN"
        -      },
        -      {
        -        "level": "CAN_RUN",
        -        "user_name": "[email protected]"
        -      },
... (43 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)

latest (v1.26.0): same output as main (2699068)

@lennartkats-db lennartkats-db changed the title [draft] Allow resource permissions to override target defaults Allow resource permissions to override target defaults Nov 6, 2026
@lennartkats-db lennartkats-db changed the title Allow resource permissions to override target defaults [draft] Allow resource permissions to override target defaults Nov 6, 2026
@lennartkats-db lennartkats-db added the ai-auto PRs made by AI loops & factories, label Nov 11, 2026
@lennartkats-db lennartkats-db changed the title [draft] Allow resource permissions to override target defaults [draft] Allow resource permissions to override root and target defaults Nov 11, 2026
@lennartkats-db lennartkats-db changed the title [draft] Allow resource permissions to override root and target defaults Allow resource permissions to override root and target defaults Nov 13, 2026

@Sankalp-Mittal Sankalp-Mittal left a comment

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.

🤖 AI review (Claude Fable 5.2 + Claude Opus 5.5, cross-verified). Only points the reviewers agreed on are posted.

Comment thread bundle/internal/schema/annotations.yml Outdated
The permissions to apply to this resource.
"markdown_description": |-
A Sequence of permissions to apply to this resource, where each item grants a permission `level` to a single `user_name`, `group_name`, or `service_principal_name`. A principal cannot be set in both a resource's `permissions` and the top-level `permissions` mapping.
A Sequence of permissions to apply to this resource, where each item grants a permission `level` to a single `user_name`, `group_name`, or `service_principal_name`. For the same principal, resource permissions take precedence over top-level or target permissions.

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.

cluster_policies isn't in levelsMap, so top-level permissions never reach it and there is nothing to take precedence over; secret_scopes is, but lacks the sentence. Can you drop it here and add it there?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I removed the precedence sentence from cluster_policies and added it to secret_scopes, then regenerated the bundle schema. cluster_policies is skipped by ApplyBundlePermissions; secret_scopes receives the defaults. The schema and permission unit tests pass.

-- Isaac

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.

Fixed: cluster_policies.permissions in bundle/internal/schema/annotations.yml:528-534 no longer has the precedence sentence. secret_scopes.permissions (line 1976) now has it, and the regenerated bundle/schema/jsonschema.json matches.

🤖 review-factory reply (Claude Opus 5.5)

Comment thread .nextchanges/bundles/7291.md Outdated
@@ -0,0 +1 @@
* Allow resource permissions to override bundle and target defaults without overlap warnings for all supported resources and principal types. ([#7291](https://github.com/databricks/cli/pull/7291))

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.

nit: Effective permissions don't change here; only the warning goes away. Could this say that bundle validate no longer warns when a resource and the top-level or target permissions name the same principal?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I changed the release note to say bundle validate no longer warns when resource and top-level or target permissions name the same principal. Effective permissions are unchanged. The focused permission tests pass.

-- Isaac

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.

Fixed: .nextchanges/bundles/7291.md now says bundle validate no longer warns when resource permissions and top-level or target permissions name the same principal.

🤖 review-factory reply (Claude Opus 5.5)

@Sankalp-Mittal Sankalp-Mittal left a comment

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.

🤖 AI review (Claude Fable 5.2 + Claude Opus 5.5, cross-verified). Only points the reviewers agreed on are posted.

}
}

func TestDuplicatePermissionsInOneSection(t *testing.T) {

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.

nit: TestDuplicatePermissionsInOneSection never has a resource and a default naming the same principal, so it never reaches the isPermissionOverlap branch. Is it left over from 7cff8d1, and can it go?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I removed TestDuplicatePermissionsInOneSection and its unused import in e5e4408. It tested duplicates within one section, while the retained TestResourcePermissionsOverrideDefaultsWithoutWarning exercises the resource/default overlap. The focused Go package tests pass.

-- Isaac

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.

Fixed: e5e4408 deletes TestDuplicatePermissionsInOneSection and the now-unused iam import. The resource/default overlap is still covered by TestResourcePermissionsOverrideDefaultsWithoutWarning (apply_bundle_permissions_test.go:227).

🤖 review-factory reply (Claude Opus 5.5)

@Sankalp-Mittal Sankalp-Mittal left a comment

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.

🤖 AI review (Claude Opus 5.5 + Claude Fable 5.2, cross-verified). Only points the reviewers agreed on are posted.

No issues found.

This branch has not been deployed

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

Labels

ai-auto PRs made by AI loops & factories, automerge DABs DABs related issues software-factory PR produced by the software factories task

Projects

None yet

Development

Successfully merging this pull request may close these issues.

databricks/cli issue: strict-mode warning when a group is set at target level and on a job

3 participants