Skip to content

docs: correct the locked-project restriction and document the undocumented sync limits - #59

Merged
JavierCarnelli-ConductorOne merged 2 commits into
mainfrom
CXH-2369/update-docs
Nov 6, 2026
Merged

JavierCarnelli-ConductorOne merged 2 commits into
mainfrom
CXH-2369/update-docs

Conversation

@carolinaroncaglia

@carolinaroncaglia carolinaroncaglia commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The connector page told readers that Tableau does not allow commas or ampersands in project names. Tableau accepts both in a name and rejects them inside a filter value, which is what the connector builds from the project name. The page now states the restriction correctly, and carries the operational limits that until now existed only in the README and in docs/docs-info.md.

Findings addressed

  • The locked-project callout attributed the restriction to project names rather than to filter values — measured against a live Tableau site: Core Exp, Nav, and Search, Sales & Marketing and R&D, Labs were all created and kept with those characters in their names. Code side verified against pkg/client/helpers.go:104-106 and pkg/connector/project.go:204. Retyped from <Warning> to <Note>, since it describes a limitation rather than a destructive action.
  • Revoking a permission a user holds only through a group left the access in place, undocumented — measured in C1: the revoke task completed at the connector and the next sync derived the grant from the group again.
  • Personal Space workbooks are not synced, undocumented on the page — measured: 17 workbooks and 102 views in Tableau against 16 and 101 in the bundle. Verified at pkg/connector/workbook.go:72-76. The README already documented this and is unchanged on that point.
  • description and og:description disagreed, and the description used the no-provisioning variant while every row of the capabilities table carries a Provision checkmark — verified against the table and baton_capabilities.json.
  • The README claimed 15 granular workbook permissions — verified against pkg/connector/workbook.go:13-29, which lists 16 including ExtractRefresh.
  • The README named project permissions Read, Write, which are the Tableau API capability names rather than the entitlement slugs the connector emits — verified against pkg/connector/project.go:16,20-27 and pkg/connector/helpers.go:41,60-62: View, Publish, and 16 Workbook / ... entitlements.
  • Membership of the All Users group cannot be changed through the API: Grant succeeds as a no-op returning GrantAlreadyExists and only Revoke errors, and Server Administrator users are skipped during group membership sync — verified at pkg/connector/group.go:141-145,173-175 and :112-116. A license revoke fails against a group's minimum site role — documented by Tableau for groups with Grant Role on Sign In, and its SCIM knowledge-base article records the same failure and the same remedy; the connector carries no guard of its own.

Why

A reader checking the first claim finds that Tableau accepts the characters the page says it forbids, and concludes the limitation does not apply to their site. The group-revoke gap is the costlier one: an administrator removes a permission, the task reports success, and the user keeps the access until someone notices on a later review.

@linear-code

linear-code Bot commented Nov 3, 2026

Copy link
Copy Markdown

CXH-2369

Base automatically changed from staging to main November 4, 2026 15:55
@JavierCarnelli-ConductorOne
JavierCarnelli-ConductorOne requested a review from a team November 4, 2026 15:55
…ented sync limits

Restate the comma and ampersand restriction as one on filter values rather
than on project names, and retype it as a note: Tableau accepts both
characters in a project name and rejects them inside a filter expression.

Document, on the customer-facing page, the limitations the README and
docs-info.md already recorded: Personal Space workbooks are not synced, the
All Users group cannot be changed through the API, Server Administrator
users are skipped during group membership sync, and a license revoke fails
against a group's minimum site role.

Document that revoking a permission a user holds only through a group
leaves the access in place.

Correct the frontmatter description to the provisioning variant and match
og:description to it, and correct the README's permission counts and
project entitlement names to the slugs the connector emits.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor
Superseded — see the current review report for commit 29c468bb7dd0

Connector PR Review: docs: correct the locked-project restriction and document the undocumented sync limits

Blocking Issues: 0 | Suggestions: 1 | Threads Resolved: 0
Criteria: Criteria status: loaded .claude/skills/ci-review.md from trusted base 28710c51d162.
Review mode: full
View review run

Review Summary

This PR only changes docs: README.md and docs/connector.mdx. No Go code, go.mod or go.sum changed. It rewrites the locked-project comma/ampersand callout so the restriction applies to filter values, not project names. It also aligns the frontmatter descriptions and documents several sync and provisioning limits: Personal Space workbooks, the All Users group, Server Administrator skipping, the group minimum site role blocking a license revoke, and the gap when revoking a permission a user only gets through a group. It also corrects the permission names and counts in the README.

I scanned the full diff for security and correctness and checked each claim against the source:

  • IsFilterSafe rejects ,&: pkg/client/helpers.go:104-106.
  • Projects without a project are skipped: pkg/connector/workbook.go:72-76.
  • 16 workbook capabilities: workbook.go:13-29.
  • Project slugs View/Publish plus Workbook / …: project.go:16-27, helpers.go:60-80.
  • All Users grant returns GrantAlreadyExists and revoke errors; ServerAdministrator members are skipped: group.go:112-118,141-145,173-175.
  • A revoke 404 maps to GrantAlreadyRevoked: helpers.go:299-302.

All of them match. Of the repo-local criteria, only the docs-related ones applied (D1–D4 and the BP3 docs gate). The code-level sections (A–G, S) don't apply because no connector code changed.

Security Issues

None found.

Correctness Issues

None found.

Suggestions

  • New (low severity, high confidence): The PR description doesn't match the actual target. It says the base is staging and that the corrected locked-project paragraph "is not on main yet". The PR actually targets main, and the base already has both the old <Warning> this diff replaces and the IsFilterSafe guard at pkg/client/helpers.go:104-106. The doc change is correct for main, but the merge instructions in the description are stale. Update them so nobody follows the staging-merge guidance.

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor
Superseded — see the current review report for commit eaa552cccdba

Connector PR Review: docs: correct the locked-project restriction and document the undocumented sync limits

Blocking Issues: 0 | Suggestions: 1 | Threads Resolved: 0
Criteria: Criteria status: loaded .claude/skills/ci-review.md from trusted base 28710c51d162.
Review mode: full
View review run

Review Summary

This PR only changes docs: README.md and docs/connector.mdx. No Go code, go.mod or go.sum changed. It rewrites the locked-project comma/ampersand callout so the restriction applies to filter values, not project names. It also aligns the frontmatter descriptions and documents several sync and provisioning limits: Personal Space workbooks, the All Users group, Server Administrator skipping, the group minimum site role blocking a license revoke, and the gap when revoking a permission a user only gets through a group. It also corrects the permission names and counts in the README.

I scanned the full diff for security and correctness and checked each claim against the source:

  • IsFilterSafe rejects ,&: pkg/client/helpers.go:104-106.
  • Projects without a project are skipped: pkg/connector/workbook.go:72-76.
  • 16 workbook capabilities: workbook.go:13-29.
  • Project slugs View/Publish plus Workbook / …: project.go:16-27, helpers.go:60-80.
  • All Users grant returns GrantAlreadyExists and revoke errors; ServerAdministrator members are skipped: group.go:112-118,141-145,173-175.
  • A revoke 404 maps to GrantAlreadyRevoked: helpers.go:299-302.

All of them match. Of the repo-local criteria, only the docs-related ones applied (D1–D4 and the BP3 docs gate). The code-level sections (A–G, S) don't apply because no connector code changed.

Security Issues

None found.

Correctness Issues

None found.

Suggestions

  • New (low severity, high confidence): The PR description doesn't match the actual target. It says the base is staging and that the corrected locked-project paragraph "is not on main yet". The PR actually targets main, and the base already has both the old <Warning> this diff replaces and the IsFilterSafe guard at pkg/client/helpers.go:104-106. The doc change is correct for main, but the merge instructions in the description are stale. Update them so nobody follows the staging-merge guidance.

Reviewed commit: 29c468bb7dd0

@github-actions github-actions Bot 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.

No blocking issues found — see the full review report

Comment thread README.md Resolved
Comment thread docs/connector.mdx Resolved
Comment thread docs/connector.mdx Resolved
Comment thread docs/connector.mdx Resolved
Comment thread docs/connector.mdx Resolved
Comment thread docs/connector.mdx Outdated
</Note>

<Note>
Tableau does not allow a site role lower than the minimum site role of any group the user belongs to. Revoking a license from a user who belongs to a group configured with **Grant role on sign in** fails with the error `Site role of link user that belongs to license upon login cannot be lower than minimum site role of group`. Remove the user from that group first, then revoke the license.

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.

Lead with the action and the fix; the error string is useful for search, so keep it. Also, the PR body says this is inferred from docs-info.md rather than reproduced. Was it reproduced against a live site?

Suggested change
Tableau does not allow a site role lower than the minimum site role of any group the user belongs to. Revoking a license from a user who belongs to a group configured with **Grant role on sign in** fails with the error `Site role of link user that belongs to license upon login cannot be lower than minimum site role of group`. Remove the user from that group first, then revoke the license.
Revoking a license fails if the user belongs to a group with a **Grant role on sign in** minimum site role. Tableau returns `Site role of link user that belongs to license upon login cannot be lower than minimum site role of group`. Remove the user from that group first, then revoke the license.

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.

Applied in eaa552c.

On the question: no, it was not reproduced against a live site. It came from the error string recorded in docs/docs-info.md:210, which is this repo's own prose rather than a Tableau source, so it was the wrong thing to lean on.

Tableau documents the constraint itself: Grant Role on Sign In, and this KB article records the same failure with the same remedy, remove the user from the group or turn the setting off. The PR description now cites those two instead of docs-info.md.

The connector carries no guard of its own: a grep over pkg/ for the minimum site role returns nothing.

Comment thread docs/connector.mdx Resolved
Comment thread docs/connector.mdx Resolved
… All Users claim

README said Grant and Revoke are unsupported on the All Users group. Grant
returns GrantAlreadyExists (pkg/connector/group.go:141-145), so it succeeds as a
no-op and only Revoke errors.

Frontmatter keeps "Salesforce Tableau" in og:description and description, so all
five fields match the name #47 aligned with the docs site.

The locked-project and group-revoke Notes move below the "Permission
inheritance" list: a Note between bullets splits the list when rendered.

Remaining edits shorten the Notes bullets and state the effect instead of the
mechanism.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor
Superseded — see the current review report for commit eaa552cccdba

Connector PR Review: docs: correct the locked-project restriction and document the undocumented sync limits

Blocking Issues: 0 | Suggestions: 1 | Threads Resolved: 0
Criteria: Criteria status: loaded .claude/skills/ci-review.md from trusted base 28710c51d162.
Review mode: incremental since 29c468b
View review run

Review Summary

This PR only touches documentation (README.md, docs/connector.mdx); no Go code changes. The new commits shorten the wording in docs/connector.mdx. They say "Salesforce Tableau" in both description and og:description, and move the locked-project comma/ampersand <Note> out of the middle of the inheritance bullet list so it sits next to the group-revoke note. They also rewrite the README's "All Users" line to match the code: Grant returns GrantAlreadyExists and Revoke returns an error (pkg/connector/group.go:141-145,173-175). I scanned the full PR diff for security and correctness. I checked the remaining doc claims against the code: IsFilterSafe at pkg/client/helpers.go:104-106, the projectName:eq: filter at pkg/connector/project.go:204, and the Server Administrator skip at group.go:112-118. All of them match. I applied the repo-local criteria: sections A–G and S only cover connector code, so the only relevant parts were the D1–D4 doc-staleness and accuracy checks. Those pass, and there are no breaking changes, provisioning changes or new scopes. Nothing in the change went unreviewed.

Security Issues

None found.

Correctness Issues

None found.

Suggestions

  • Prior — still present (low severity, high confidence): the PR description still says the base is staging and that the corrected paragraph "is not on main yet". The PR targets main, and the base already has the old <Warning> and the IsFilterSafe guard (pkg/client/helpers.go:104-106). The doc content is correct for main. Only the merge instructions in the description are stale.
Prompt for AI agents
Verify each finding against the current code and only fix it if needed.

## Suggestions

In the PR #59 description (not a file):
- The "Base is `staging`..." paragraph is stale: the PR targets `main`, and `main` already contains the paragraph being corrected and the IsFilterSafe guard in pkg/client/helpers.go:104-106. Remove or rewrite that paragraph so it describes merging into `main` directly.

@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Connector PR Review: docs: correct the locked-project restriction and document the undocumented sync limits

Blocking Issues: 0 | Suggestions: 1 | Threads Resolved: 0
Criteria: Criteria status: loaded .claude/skills/ci-review.md from trusted base 28710c51d162.
Review mode: incremental since 29c468b
View review run

Review Summary

This PR only touches documentation (README.md, docs/connector.mdx); no Go code changes. The new commits shorten the wording in docs/connector.mdx. They say "Salesforce Tableau" in both description and og:description, and move the locked-project comma/ampersand <Note> out of the middle of the inheritance bullet list so it sits next to the group-revoke note. They also rewrite the README's "All Users" line to match the code: Grant returns GrantAlreadyExists and Revoke returns an error (pkg/connector/group.go:141-145,173-175). I scanned the full PR diff for security and correctness. I checked the remaining doc claims against the code: IsFilterSafe at pkg/client/helpers.go:104-106, the projectName:eq: filter at pkg/connector/project.go:204, and the Server Administrator skip at group.go:112-118. All of them match. I applied the repo-local criteria: sections A–G and S only cover connector code, so the only relevant parts were the D1–D4 doc-staleness and accuracy checks. Those pass, and there are no breaking changes, provisioning changes or new scopes. Nothing in the change went unreviewed.

Security Issues

None found.

Correctness Issues

None found.

Suggestions

  • Prior — still present (low severity, high confidence): the PR description still says the base is staging and that the corrected paragraph "is not on main yet". The PR targets main, and the base already has the old <Warning> and the IsFilterSafe guard (pkg/client/helpers.go:104-106). The doc content is correct for main. Only the merge instructions in the description are stale.
Prompt for AI agents
Verify each finding against the current code and only fix it if needed.

## Suggestions

In the PR #59 description (not a file):
- The "Base is `staging`..." paragraph is stale: the PR targets `main`, and `main` already contains the paragraph being corrected and the IsFilterSafe guard in pkg/client/helpers.go:104-106. Remove or rewrite that paragraph so it describes merging into `main` directly.

Reviewed commit: eaa552cccdba

@github-actions github-actions Bot 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.

No blocking issues found — see the full review report

@JavierCarnelli-ConductorOne
JavierCarnelli-ConductorOne merged commit f26d349 into main Nov 6, 2026
11 checks passed
@JavierCarnelli-ConductorOne
JavierCarnelli-ConductorOne deleted the CXH-2369/update-docs branch November 6, 2026 00:04
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.

4 participants