With public links for SeekTable reports, you can easily embed reports in internal web portals/apps. This is a simple, no-code/low-code method available in the SeekTable for reports that can be accessed via a hyperlink or an iframe. To maintain report security and control access to sensitive published reports, you can enable the JSON Web Token (JWT) access control option at the "Configure Published Report" form:
Now this public link can be accessed only with a valid (non-expired) embed token. This embed token can be generated via API:
{SeekTable_BaseUrl}/api/report/embed/generatetoken
{SeekTable_BaseUrl} |
(required) | For cloud SeekTable: https://www.seektable.com/
For on-prem SeekTable: your installation base URL. |
Header: Authorization |
(required) | Public link owner's API key (Manage Account → Get API Key). |
Request body |
(required) |
JSON object with an embedding context properties (all of them are optional):
{ "LifetimeInMinutes": 120, "ReportIds":["public_link_id"], "ReportParameters": {"viewer_id" : "host_app_user_id" } }
|
Response |
HTTP/200 (OK) when embed token is generated successfully + JSON object in the response body:
{ "Token": "token_value_for_public_link_auth_parameter", "TokenId": "unique_token_identifier" } |
curl -v -H "Authorization: SEEKTABLE_ACCOUNT_API_KEY" -X POST -H "Content-Type: application/json" -d "{}" SEEKTABLE_BASE_URL/api/report/embed/generatetoken
Important: Embed tokens must be generated server-side within your application. Client-side generation is strictly forbidden because it would expose your API key, allowing end-users unrestricted access to all your reports.
Once your host web app obtains an embed token,
it can be cached for the current user (for a short period of time, according to the token's lifetime)
and added to the public link URL in the auth
parameter, for example:
<frame border="0" frameborder="0" style="width:100%; height: calc(100vh - 100px)" src="{SeekTable_BaseUrl}/public/report/{PublicLinkId}?auth={Token}"></<frame>