Deprecate UserItem.Roles.UnlicensedWithPublish and .ViewerWithPublish (never accepted by the server)
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 55/100
Direção de pesquisa
Start by locating UserItem.Roles and how its class attributes are resolved; compare a class_getattr approach with a Roles.getattribute shim. Review _decompose_site_role and the behavior introduced by PR #1812. Done means accesses to both constants warn, their docstring records historical compatibility and server incompatibility, and existing invalid-user handling remains intact.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
UserItem.Roles.UnlicensedWithPublish and UserItem.Roles.ViewerWithPublish are in the public API but have never worked as site role values against the Tableau server:
POST /users(XML path used byusers.add):RestApiSiteRole.fromStringaccepts the modern site roles plus a handful of v2 legacy names (Publisher,Interactor,Guest,SupportUser,SiteAdministrator,ReadOnly). NeitherUnlicensedWithPublishnorViewerWithPublishis in that enum on any REST API version I can see in monolith git history (back to 2023 Perforce snapshot).POST /users/import(CSV path used byusers.bulk_add):CsvLicenseRoleTypeConverteraccepts onlycreator/interactor/explorer/viewer/unlicensed/empty; any other value throwsUSER_CSV_INVALID_LICENSE. There is no site role → license translation before the license converter runs.UnlicensedWithPublish/ViewerWithPublishas literallicensecolumn values are rejected outright.
They've been in UserItem.Roles since the first commit of the library (2016-09-02) and have almost certainly been broken since Tableau Server 8.x/9.x-era licensing was replaced with the current Creator/Explorer/Viewer model.
Proposed fix:
- Emit a
DeprecationWarningwhen either is accessed as a class attribute (via__class_getattr__on a metaclass, or aRoles.__getattribute__shim). - Update the docstring to note the constants are retained for historical compatibility but do not correspond to any accepted server-side site role.
- Remove in a future major version.
Alternatively, if there is any historical or planned server behavior that would accept these strings that I have not found, please point at it and this issue can be closed.
Related
- PR #1812 refactored
_decompose_site_roleand initially defaulted unmapped site roles toUnlicensed, silently coercing these two roles to a valid-but-wrong user creation. That was changed to emitlicense="Invalid"(commit ac84fd3) so the server continues to reject the row instead of silently succeeding. This issue is the longer-term followup to properly deprecate the offending constants.
- Linguagem predominante
- Python
- Estrelas
- 716
- Forks
- 446
- Merge médio
- 8d 8h
- PRs com merge (30d)
- 2
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de tableau/server-client-python
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
tableau/server-client-python#1865 ·
-
in-progress
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
tableau/server-client-python#1829 · 1 comentário ·
-
enhancement gap needs investigation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
tableau/server-client-python#1322 · 1 comentário ·
-
[Type2] Allow Incremental Refresh type schedules to be added via `server.schedules.add_to_schedule` Abertahelp wanted Server-Side Enhancement ui-exists
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
tableau/server-client-python#1101 · 3 comentários ·
-
enhancement good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
tableau/server-client-python#783 · 5 comentários ·
Todas as issues de tableau/server-client-python
Issues semelhantes
-
area: harness bug status: needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Human-Agent-Society/reef#625 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 80/100
learningequality/kolibri#15351 · 2 comentários ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Name consistency Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
eellak/triplestore#65 · 1 comentário ·