You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Maintainers can publish prerelease packages from GitHub Actions after the [Module Completion Gate](docs/module-completion.md) is met. See [Release Process](docs/release.md).
@@ -37,54 +39,91 @@ Maintainers can publish prerelease packages from GitHub Actions after the [Modul
37
39
38
40
## Configuration (appsettings.json)
39
41
40
-
Add your Tableau settings in `appsettings.json`:
42
+
Add your Tableau settings in `appsettings.json`. Include only the fields relevant to the authentication method you plan to use.
41
43
42
44
```json
43
45
{
44
46
"TableauOptions": {
45
47
"Server": "https://your-tableau-server",
46
48
"Version": "3.23",
47
-
"Site": "yoursite"
49
+
"Site": "your-site-name"
48
50
},
49
51
"TableauAuthOptions": {
50
-
"SiteContentUrl": "yoursite",
51
-
"PersonalAccessTokenName": "your-token-name",
52
-
"PersonalAccessTokenSecret": "your-token-secret",
52
+
"SiteContentUrl": "your-site-name",
53
+
54
+
// Personal Access Token (recommended for server-side apps)
`AddTableauSharp` registers all services — `IAuthService`, `IUserService`, `IGroupService`, `IProjectService`, `IWorkbookService`, `IViewService`, `IDataSourceService`, `IPermissionService`, and `IEmbeddingService` — as scoped dependencies.
93
+
76
94
---
77
95
78
96
## Authentication Lifecycle
79
97
80
-
Call one of the sign-in methods before using site-scoped services:
98
+
Call one of the sign-in methods before using site-scoped services. The token is stored automatically in the scoped `ITableauTokenProvider` and injected into all other services.
Successful sign-in stores the Tableau auth token, site LUID, site content URL, user LUID, and expiration in the scoped Tableau session. Site-scoped REST requests use the signed-in site LUID returned by Tableau, not the friendly site content URL.
126
+
Successful sign-in stores the Tableau auth token, site LUID, site content URL, user LUID, and expiration. Site-scoped REST requests use the signed-in site LUID returned by Tableau, not the friendly site content URL.
88
127
89
128
The built-in session is scoped for a single logical caller. Server applications that serve multiple Tableau users should create an appropriate DI scope per caller/request or manage user-specific sessions explicitly.
90
129
@@ -97,44 +136,92 @@ The built-in session is scoped for a single logical caller. Server applications
0 commit comments