Skip to content

Latest commit

 

History

History
1207 lines (799 loc) · 92.2 KB

File metadata and controls

1207 lines (799 loc) · 92.2 KB

Apps

Overview

Available Operations

  • heartbeat - Keeps the viewed app's compute worker alive; first view spawns and pre-warms it (dashboard viewer-TTL parity).
  • create_app - CreateApp
  • delete_app - DeleteApp
  • duplicate - Duplicates an app the caller can view into a new app they own, named "Copy of ". Copies code/files/data sources/compute functions/ schedule; never carries over the source's data snapshot.
  • get - GetApp
  • get_db_schema - Read-only table/column list for the app's private DuckDB (app_db).
  • get_db_table_preview - A bounded row preview of one app_db table (SELECT ... LIMIT n).
  • get_member_state - Per-member app state: one JSON blob per (app, member) so apps remember settings/progress. Member always resolved server-side from auth context; per-member persistence, so viewers with read access can save their own state.
  • get_app_version - GetAppVersion
  • get_app_view_stats - View analytics: reads the engagement views recorded on app page load.
  • get_members_with_apps - GetMembersWithApps
  • invoke_compute_function - Executes a declared compute function on a pooled sandbox worker; gated, org-scoped, rate-limited.
  • list_activity_since - Cross-member live activity: rows from every member of the app after a seq, each carrying member_id + display_name (resolved server-side; never email).
  • list_uploads - Lists the invoking viewer's uploads for this app. May recover legacy Library pointers on first use.
  • list_versions - Version history: git-backed, one version per save (plus legacy publish-era snapshots); authors can list and restore.
  • list - ListApps
  • list_my_member_activity - ListMyAppMemberActivity
  • move_app_to_folder - Moves an app into a library folder (or to root when folder_id is empty).
  • presence_heartbeat - Presence heartbeat: sets a short-TTL Valkey key for the member and nudges the app's stream. Presence never touches Postgres and never exposes emails.
  • record_member_activity - Append-only per-member activity log. Listing is own rows only; no cross-member reads in this release.
  • refresh - Re-fetches data sources, rebuilds the document with a fresh snapshot, re-uploads.
  • remove_upload - Removes only this viewer's app association, never the dataset itself.
  • restore_app_version - RestoreAppVersion
  • set_member_state - SetAppMemberState
  • set_favorite - Favorite/unfavorite a library item (app or dashboard) for the calling member. Per-member, per-org; favorited=false hard-deletes the row. Covers both primitives since the merged library page pins apps and dashboards through one client.
  • update - UpdateApp
  • verify_render - Renders the live artifact in the production sandbox and returns browser diagnostics. This is synchronous so callers can verify an app before sharing its URL.

heartbeat

Keeps the viewed app's compute worker alive; first view spawns and pre-warms it (dashboard viewer-TTL parity).

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.heartbeat()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceAppHeartbeatResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

create_app

CreateApp

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.create_app()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
name Optional[str] ➖ N/A
description OptionalNullable[str] ➖ N/A
code Optional[str] ➖ N/A
data_sources List[models.TextqlRPCPublicDashboardDataSource] ➖ N/A
compute_functions List[models.TextqlRPCPublicAppComputeFunction] ➖ N/A
files List[models.TextqlRPCPublicAppAppFile] ➖ N/A
capabilities List[models.TextqlRPCPublicAppCapability] ➖ N/A
app_db_setup List[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceCreateAppResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

delete_app

DeleteApp

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.delete_app()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceDeleteAppResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

duplicate

Duplicates an app the caller can view into a new app they own, named "Copy of ". Copies code/files/data sources/compute functions/ schedule; never carries over the source's data snapshot.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.duplicate()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceDuplicateAppResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

get

GetApp

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.get()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceGetAppResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

get_db_schema

Read-only table/column list for the app's private DuckDB (app_db).

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.get_db_schema()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceGetAppDBSchemaResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

get_db_table_preview

A bounded row preview of one app_db table (SELECT ... LIMIT n).

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.get_db_table_preview()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
table_name Optional[str] ➖ N/A
limit Optional[int] ➖ clamped server-side; 0 uses the default
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceGetAppDBTablePreviewResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

get_member_state

Per-member app state: one JSON blob per (app, member) so apps remember settings/progress. Member always resolved server-side from auth context; per-member persistence, so viewers with read access can save their own state.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.get_member_state()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceGetAppMemberStateResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

get_app_version

GetAppVersion

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.get_app_version()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
version_number Optional[int] ➖ N/A
commit_id OptionalNullable[str] ➖ Prefer this git commit SHA when set; else version_number selects a legacy db-backed row.
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceGetAppVersionResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

get_app_view_stats

View analytics: reads the engagement views recorded on app page load.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.get_app_view_stats()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceGetAppViewStatsResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

get_members_with_apps

GetMembersWithApps

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.get_members_with_apps(body={})

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
body models.TextqlRPCPublicAppGetMembersWithAppsRequest ✔️ N/A
connect_timeout_ms Optional[float] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceGetMembersWithAppsResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

invoke_compute_function

Executes a declared compute function on a pooled sandbox worker; gated, org-scoped, rate-limited.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.invoke_compute_function()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
function_name Optional[str] ➖ N/A
params_json Optional[str] ➖ JSON object, keys map to function kwargs
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceInvokeAppComputeFunctionResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

list_activity_since

Cross-member live activity: rows from every member of the app after a seq, each carrying member_id + display_name (resolved server-side; never email).

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.list_activity_since()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
scope OptionalNullable[str] ➖ N/A
after_seq Optional[models.AfterSeq] ➖ N/A
limit Optional[int] ➖ server clamps to 200; <=0 means default
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceListAppActivitySinceResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

list_uploads

Lists the invoking viewer's uploads for this app. May recover legacy Library pointers on first use.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.list_uploads()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
page_size Optional[int] ➖ Default 25, maximum 100.
page_token Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceListAppUploadsResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

list_versions

Version history: git-backed, one version per save (plus legacy publish-era snapshots); authors can list and restore.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.list_versions()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
limit Optional[int] ➖ N/A
offset Optional[int] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceListAppVersionsResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

list

ListApps

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.list()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
search_term OptionalNullable[str] ➖ N/A
limit Optional[int] ➖ N/A
offset Optional[int] ➖ N/A
folder_id OptionalNullable[str] ➖ Filter by specific folder
uncategorized_only OptionalNullable[bool] ➖ Only show apps with no folder
shared_with_me OptionalNullable[bool] ➖ Only apps shared with the caller (not authored by them)
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceListAppsResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

list_my_member_activity

ListMyAppMemberActivity

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.list_my_member_activity()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
type OptionalNullable[str] ➖ N/A
limit Optional[int] ➖ server clamps to 200; <=0 means default
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceListMyAppMemberActivityResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

move_app_to_folder

Moves an app into a library folder (or to root when folder_id is empty).

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.move_app_to_folder()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
folder_id OptionalNullable[str] ➖ null/empty = move to root (uncategorized)
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceMoveAppToFolderResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

presence_heartbeat

Presence heartbeat: sets a short-TTL Valkey key for the member and nudges the app's stream. Presence never touches Postgres and never exposes emails.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.presence_heartbeat()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
zone Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServicePresenceHeartbeatResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

record_member_activity

Append-only per-member activity log. Listing is own rows only; no cross-member reads in this release.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.record_member_activity()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
type Optional[str] ➖ N/A
scope OptionalNullable[str] ➖ N/A
payload_json OptionalNullable[str] ➖ JSON object, usage payload authored by the app
idem_key OptionalNullable[str] ➖ duplicate key returns the existing row, not an error
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceRecordAppMemberActivityResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

refresh

Re-fetches data sources, rebuilds the document with a fresh snapshot, re-uploads.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.refresh()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceRefreshAppResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

remove_upload

Removes only this viewer's app association, never the dataset itself.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.remove_upload()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
dataset_id Optional[str] ➖ N/A
version Optional[int] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceRemoveAppUploadResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

restore_app_version

RestoreAppVersion

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.restore_app_version()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
version_number Optional[int] ➖ N/A
commit_id OptionalNullable[str] ➖ Prefer this git commit SHA when set; else version_number selects a legacy db-backed row.
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceRestoreAppVersionResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

set_member_state

SetAppMemberState

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.set_member_state()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
value_json Optional[str] ➖ whole-object JSON, last-write-wins, max 64KB
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceSetAppMemberStateResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

set_favorite

Favorite/unfavorite a library item (app or dashboard) for the calling member. Per-member, per-org; favorited=false hard-deletes the row. Covers both primitives since the merged library page pins apps and dashboards through one client.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.set_favorite()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
primitive_type Optional[str] ➖ 'app' | 'dashboard'
primitive_id Optional[str] ➖ N/A
favorited Optional[bool] ➖ true = pin, false = unpin (hard delete)
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceSetFavoriteResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

update

UpdateApp

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.update()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
name OptionalNullable[str] ➖ N/A
description OptionalNullable[str] ➖ N/A
code OptionalNullable[str] ➖ N/A
data_sources List[models.TextqlRPCPublicDashboardDataSource] ➖ N/A
replace_data_sources OptionalNullable[bool] ➖ N/A
publish OptionalNullable[bool] ➖ : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

publish is gone (head is live); ignored by the server
staleness_window_seconds OptionalNullable[int] ➖ N/A
compute_functions List[models.TextqlRPCPublicAppComputeFunction] ➖ N/A
replace_compute_functions OptionalNullable[bool] ➖ N/A
files List[models.TextqlRPCPublicAppAppFile] ➖ N/A
replace_files OptionalNullable[bool] ➖ N/A
schedule_enabled OptionalNullable[bool] ➖ N/A
cron_string OptionalNullable[str] ➖ N/A
capabilities List[models.TextqlRPCPublicAppCapability] ➖ N/A
replace_capabilities OptionalNullable[bool] ➖ N/A
app_db_setup List[str] ➖ N/A
replace_app_db_setup OptionalNullable[bool] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceUpdateAppResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*

verify_render

Renders the live artifact in the production sandbox and returns browser diagnostics. This is synchronous so callers can verify an app before sharing its URL.

Example Usage

import os
from textql_sdk import Textql


with Textql(
    api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:

    res = textql.apps.verify_render()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description
connect_timeout_ms Optional[float] ➖ N/A
app_id Optional[str] ➖ N/A
retries Optional[utils.RetryConfig] ➖ Configuration to override the default retry behavior of the client.

Response

models.AppServiceVerifyAppRenderResponse

Errors

Error Type Status Code Content Type
errors.TextqlDefaultError 4XX, 5XX */*