@ax-hub/sdk 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -0
- package/dist/cli/doctor.cjs +1 -1
- package/dist/cli/doctor.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +76 -110
- package/dist/index.d.ts +76 -110
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -404,7 +404,8 @@ interface EmitAuditEventInput {
|
|
|
404
404
|
interface IntegrityCheckResult {
|
|
405
405
|
ok: boolean;
|
|
406
406
|
checked: number;
|
|
407
|
-
|
|
407
|
+
firstBadSeq?: number;
|
|
408
|
+
reason?: string;
|
|
408
409
|
}
|
|
409
410
|
interface AnonymizeInput {
|
|
410
411
|
subjectId?: string;
|
|
@@ -453,6 +454,13 @@ declare class AuditServerForTenantClient {
|
|
|
453
454
|
private readonly http;
|
|
454
455
|
private readonly tenantSlug;
|
|
455
456
|
constructor(http: HttpClient, tenantSlug: string);
|
|
457
|
+
/**
|
|
458
|
+
* Emit a server-side audit event.
|
|
459
|
+
*
|
|
460
|
+
* @remarks The backend route `POST /audit-events/server` is not yet
|
|
461
|
+
* implemented (currently 404). Retained ahead of backend support — see
|
|
462
|
+
* ADR-0040. Do not rely on this in production until the route ships.
|
|
463
|
+
*/
|
|
456
464
|
emit(input: EmitAuditEventInput, opts?: RequestOptions): Promise<AuditEvent>;
|
|
457
465
|
}
|
|
458
466
|
|
|
@@ -508,7 +516,7 @@ declare class Crud<T extends {
|
|
|
508
516
|
private readonly http;
|
|
509
517
|
private readonly base;
|
|
510
518
|
constructor(http: HttpClient, base: string);
|
|
511
|
-
list(opts?:
|
|
519
|
+
list(opts?: RequestOptions): Promise<T[]>;
|
|
512
520
|
get(id: string, opts?: RequestOptions): Promise<T>;
|
|
513
521
|
create(input: Record<string, unknown>, opts?: RequestOptions): Promise<T>;
|
|
514
522
|
update(id: string, patch: Record<string, unknown>, opts?: RequestOptions): Promise<T>;
|
|
@@ -567,6 +575,7 @@ interface BulkInviteResult {
|
|
|
567
575
|
rejected: Array<{
|
|
568
576
|
email: string;
|
|
569
577
|
reason: string;
|
|
578
|
+
message?: string;
|
|
570
579
|
}>;
|
|
571
580
|
}
|
|
572
581
|
interface EmailDomain {
|
|
@@ -613,9 +622,9 @@ declare class TenantMembersForTenantClient {
|
|
|
613
622
|
list(opts?: PageRequestOptions): Promise<PaginatedList<TenantMember>>;
|
|
614
623
|
update(membershipId: string, patch: {
|
|
615
624
|
role?: string;
|
|
616
|
-
}, opts?: RequestOptions): Promise<
|
|
617
|
-
deactivate(membershipId: string, opts?: RequestOptions): Promise<
|
|
618
|
-
reactivate(membershipId: string, opts?: RequestOptions): Promise<
|
|
625
|
+
}, opts?: RequestOptions): Promise<void>;
|
|
626
|
+
deactivate(membershipId: string, opts?: RequestOptions): Promise<void>;
|
|
627
|
+
reactivate(membershipId: string, opts?: RequestOptions): Promise<void>;
|
|
619
628
|
}
|
|
620
629
|
declare class TenantInvitationsClient {
|
|
621
630
|
private readonly http;
|
|
@@ -851,11 +860,13 @@ declare class AppsCrudMixin {
|
|
|
851
860
|
signIconDarkUploadURL(appId: string, input: SignIconUploadInput): Promise<SignIconUploadResult>;
|
|
852
861
|
private signIconImpl;
|
|
853
862
|
/**
|
|
854
|
-
* List
|
|
855
|
-
* Useful for "apps in my dashboard"
|
|
863
|
+
* List the caller's workspace apps — owned plus apps they've been granted
|
|
864
|
+
* access to (not necessarily owned). Useful for "apps in my dashboard" views.
|
|
856
865
|
*
|
|
857
|
-
* Backend route is `/api/v1/
|
|
858
|
-
*
|
|
866
|
+
* Backend route is `/api/v1/me/apps/workspace`, which returns plain
|
|
867
|
+
* `appResponse` rows. (The legacy `/users/me/apps` route returns access
|
|
868
|
+
* records with a different shape, so it is not used here.) Surfaced under
|
|
869
|
+
* `sdk.apps` to avoid a `sdk.users.*` namespace for one method (eng review #3).
|
|
859
870
|
*
|
|
860
871
|
* @example happy
|
|
861
872
|
* const mine = await sdk.apps.listMine()
|
|
@@ -1767,68 +1778,45 @@ declare class AppScopedTablesClient {
|
|
|
1767
1778
|
inspect(tableName: string, opts?: RequestOptions): Promise<unknown>;
|
|
1768
1779
|
}
|
|
1769
1780
|
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
type: 'item';
|
|
1777
|
-
value: T;
|
|
1778
|
-
id: string | undefined;
|
|
1779
|
-
} | {
|
|
1780
|
-
type: 'gap';
|
|
1781
|
-
sinceId: string | undefined;
|
|
1782
|
-
missingCount?: number;
|
|
1783
|
-
} | {
|
|
1784
|
-
type: 'decode-skip';
|
|
1785
|
-
frame: ParsedFrame;
|
|
1786
|
-
error: AxHubError;
|
|
1787
|
-
};
|
|
1788
|
-
interface SSEStream<T> extends AsyncIterable<StreamItem<T>> {
|
|
1789
|
-
dispose(): void;
|
|
1781
|
+
type DeploymentStatus = 'pending' | 'building' | 'pushing' | 'deploying' | 'succeeded' | 'failed' | 'cancelled';
|
|
1782
|
+
interface DeploymentFailureReason {
|
|
1783
|
+
stage: string;
|
|
1784
|
+
code: string;
|
|
1785
|
+
category: string;
|
|
1786
|
+
message: string;
|
|
1790
1787
|
}
|
|
1791
|
-
|
|
1792
|
-
type DeploymentStatus = 'queued' | 'building' | 'deploying' | 'succeeded' | 'failed' | 'cancelled' | 'rolled_back';
|
|
1793
1788
|
interface DeploymentResponse {
|
|
1794
1789
|
id: string;
|
|
1795
1790
|
appId: string;
|
|
1791
|
+
commitSha: string;
|
|
1796
1792
|
status: DeploymentStatus;
|
|
1793
|
+
/** Stage in progress (building/pushing/deploying); null once terminal. */
|
|
1794
|
+
currentStage: string | null;
|
|
1795
|
+
/** Pushed image path; null before the build completes. */
|
|
1796
|
+
imageUri: string | null;
|
|
1797
1797
|
triggerSource: string;
|
|
1798
1798
|
startedAt: string | null;
|
|
1799
1799
|
completedAt: string | null;
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
createdAt: string;
|
|
1803
|
-
updatedAt: string;
|
|
1800
|
+
/** Populated only when status === 'failed'; null otherwise. */
|
|
1801
|
+
failureReason: DeploymentFailureReason | null;
|
|
1804
1802
|
}
|
|
1805
1803
|
interface CreateDeploymentInput {
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
line: string;
|
|
1811
|
-
}
|
|
1812
|
-
interface PodLogEvent {
|
|
1813
|
-
ts: string;
|
|
1814
|
-
line: string;
|
|
1815
|
-
}
|
|
1816
|
-
interface PodEventEvent {
|
|
1817
|
-
type: 'Normal' | 'Warning';
|
|
1818
|
-
reason: string;
|
|
1819
|
-
message: string;
|
|
1820
|
-
ts: string;
|
|
1804
|
+
/** Specific git commit SHA (40-hex) to build. Omit to deploy the GitConnection default-branch HEAD. */
|
|
1805
|
+
commitSha?: string;
|
|
1806
|
+
/** Force a rebuild even if this commit already has a built image (dependency / base-image refresh). */
|
|
1807
|
+
forceRebuild?: boolean;
|
|
1821
1808
|
}
|
|
1822
1809
|
declare class DeploymentsClient {
|
|
1823
1810
|
private readonly http;
|
|
1824
1811
|
constructor(http: HttpClient);
|
|
1825
1812
|
/**
|
|
1826
1813
|
* Trigger a new deployment. Returns immediately with the deployment row
|
|
1827
|
-
* in `
|
|
1828
|
-
* `get()` to observe progression.
|
|
1814
|
+
* in `pending` or `building` state; poll `get()` to observe progression.
|
|
1829
1815
|
*
|
|
1830
1816
|
* @example happy
|
|
1831
|
-
* const dep = await sdk.deployments.create('app_abc', {
|
|
1817
|
+
* const dep = await sdk.deployments.create('app_abc', { commitSha: 'a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0' })
|
|
1818
|
+
* // or omit input entirely to deploy the default-branch HEAD:
|
|
1819
|
+
* const head = await sdk.deployments.create('app_abc')
|
|
1832
1820
|
*
|
|
1833
1821
|
* @example failure
|
|
1834
1822
|
* try { await sdk.deployments.create('app_abc') }
|
|
@@ -1851,7 +1839,7 @@ declare class DeploymentsClient {
|
|
|
1851
1839
|
*
|
|
1852
1840
|
* @example happy
|
|
1853
1841
|
* const dep = await sdk.deployments.get('app_abc', 'dep_123')
|
|
1854
|
-
* if (dep.status === 'succeeded') console.log(dep.
|
|
1842
|
+
* if (dep.status === 'succeeded') console.log(dep.imageUri)
|
|
1855
1843
|
*/
|
|
1856
1844
|
get(appId: string, did: string): Promise<DeploymentResponse>;
|
|
1857
1845
|
/**
|
|
@@ -1878,55 +1866,6 @@ declare class DeploymentsClient {
|
|
|
1878
1866
|
* }
|
|
1879
1867
|
*/
|
|
1880
1868
|
rollback(appId: string, did: string): Promise<void>;
|
|
1881
|
-
/**
|
|
1882
|
-
* Stream Cloud Build log lines for a deployment via SSE. Returns an
|
|
1883
|
-
* AsyncIterable that yields `{type:'item', value}`, `{type:'gap'}` (on
|
|
1884
|
-
* reconnect when ring buffer rolled), or `{type:'decode-skip'}` (single
|
|
1885
|
-
* malformed frame). Iterator completes when the deployment reaches a
|
|
1886
|
-
* terminal state.
|
|
1887
|
-
*
|
|
1888
|
-
* @example happy
|
|
1889
|
-
* const ctrl = new AbortController()
|
|
1890
|
-
* for await (const ev of sdk.deployments.streamBuildLogs(appId, did, { signal: ctrl.signal })) {
|
|
1891
|
-
* if (ev.type === 'item') process.stdout.write(ev.value.line + '\n')
|
|
1892
|
-
* }
|
|
1893
|
-
*
|
|
1894
|
-
* @example failure
|
|
1895
|
-
* try {
|
|
1896
|
-
* for await (const _ of sdk.deployments.streamBuildLogs(appId, did)) {}
|
|
1897
|
-
* } catch (e) {
|
|
1898
|
-
* if (e instanceof StreamConsumedError) /* iterating twice — forbidden *\/
|
|
1899
|
-
* }
|
|
1900
|
-
*/
|
|
1901
|
-
streamBuildLogs(appId: string, did: string, opts?: {
|
|
1902
|
-
signal?: AbortSignal;
|
|
1903
|
-
}): SSEStream<BuildLogEvent>;
|
|
1904
|
-
/**
|
|
1905
|
-
* Stream runtime pod stdout/stderr after deploy succeeds. Same iterator
|
|
1906
|
-
* semantics as `streamBuildLogs`. Ring buffer cap = 200 most recent lines.
|
|
1907
|
-
*
|
|
1908
|
-
* @example happy
|
|
1909
|
-
* for await (const ev of sdk.deployments.streamPodLogs(appId, did)) {
|
|
1910
|
-
* if (ev.type === 'item') console.log(ev.value.line)
|
|
1911
|
-
* }
|
|
1912
|
-
*/
|
|
1913
|
-
streamPodLogs(appId: string, did: string, opts?: {
|
|
1914
|
-
signal?: AbortSignal;
|
|
1915
|
-
}): SSEStream<PodLogEvent>;
|
|
1916
|
-
/**
|
|
1917
|
-
* Stream Kubernetes pod events (Normal / Warning — CrashLoopBackOff,
|
|
1918
|
-
* OOMKilled, ImagePullBackOff, ...). Use for self-heal signal detection.
|
|
1919
|
-
*
|
|
1920
|
-
* @example happy
|
|
1921
|
-
* for await (const ev of sdk.deployments.streamPodEvents(appId, did)) {
|
|
1922
|
-
* if (ev.type === 'item' && ev.value.type === 'Warning') {
|
|
1923
|
-
* console.warn(ev.value.reason, ev.value.message)
|
|
1924
|
-
* }
|
|
1925
|
-
* }
|
|
1926
|
-
*/
|
|
1927
|
-
streamPodEvents(appId: string, did: string, opts?: {
|
|
1928
|
-
signal?: AbortSignal;
|
|
1929
|
-
}): SSEStream<PodEventEvent>;
|
|
1930
1869
|
}
|
|
1931
1870
|
|
|
1932
1871
|
interface GatewayEngine {
|
|
@@ -2166,10 +2105,10 @@ declare function isAllowed(r: GatewayQueryResult | InvokeResult): boolean;
|
|
|
2166
2105
|
/**
|
|
2167
2106
|
* True when a deny is an SQL-format rejection the caller can fix by editing the SQL.
|
|
2168
2107
|
*
|
|
2169
|
-
*
|
|
2170
|
-
*
|
|
2171
|
-
*
|
|
2172
|
-
*
|
|
2108
|
+
* The live backend wraps these as `"SQL 형식 오류: safesql: only SELECT or WITH allowed
|
|
2109
|
+
* (got \"delete\")"` — a Korean prefix plus the inner `safesql:` marker. Matches either so
|
|
2110
|
+
* it survives wording shifts in the wrapper. String matching is brittle by construction;
|
|
2111
|
+
* branch on this for UX hints only, not control flow that must be exact.
|
|
2173
2112
|
*/
|
|
2174
2113
|
declare function isSqlFormatError(r: GatewayQueryResult | InvokeResult): boolean;
|
|
2175
2114
|
/** True when a deny is a policy denial (not an SQL-format error). Editing SQL will not help. */
|
|
@@ -2358,9 +2297,14 @@ declare class IdentityProviderClient {
|
|
|
2358
2297
|
declare class IdentitySystemOAuthClientsClient {
|
|
2359
2298
|
private readonly http;
|
|
2360
2299
|
constructor(http: HttpClient);
|
|
2300
|
+
/**
|
|
2301
|
+
* Fetch an OAuth client by ID. This is the only global OAuth-client route on
|
|
2302
|
+
* the backend (`GET /oauth-clients/{clientID}`). To **create** an OAuth
|
|
2303
|
+
* client, use the app-scoped `sdk.apps.oauthClients.create(appId, …)` — the
|
|
2304
|
+
* backend only exposes creation under `POST /apps/{appID}/oauth-clients/`.
|
|
2305
|
+
* There is no global create/delete route.
|
|
2306
|
+
*/
|
|
2361
2307
|
get(clientId: string, opts?: RequestOptions): Promise<SystemOAuthClient>;
|
|
2362
|
-
create(input: Record<string, unknown>, opts?: RequestOptions): Promise<SystemOAuthClient>;
|
|
2363
|
-
delete(clientId: string, opts?: RequestOptions): Promise<void>;
|
|
2364
2308
|
}
|
|
2365
2309
|
|
|
2366
2310
|
interface SettlePublicationInput {
|
|
@@ -2563,6 +2507,28 @@ declare class NoAuth implements AuthProvider {
|
|
|
2563
2507
|
onUnauthorized(): Promise<boolean>;
|
|
2564
2508
|
}
|
|
2565
2509
|
|
|
2510
|
+
interface ParsedFrame {
|
|
2511
|
+
id?: string;
|
|
2512
|
+
event?: string;
|
|
2513
|
+
data: string;
|
|
2514
|
+
}
|
|
2515
|
+
type StreamItem<T> = {
|
|
2516
|
+
type: 'item';
|
|
2517
|
+
value: T;
|
|
2518
|
+
id: string | undefined;
|
|
2519
|
+
} | {
|
|
2520
|
+
type: 'gap';
|
|
2521
|
+
sinceId: string | undefined;
|
|
2522
|
+
missingCount?: number;
|
|
2523
|
+
} | {
|
|
2524
|
+
type: 'decode-skip';
|
|
2525
|
+
frame: ParsedFrame;
|
|
2526
|
+
error: AxHubError;
|
|
2527
|
+
};
|
|
2528
|
+
interface SSEStream<T> extends AsyncIterable<StreamItem<T>> {
|
|
2529
|
+
dispose(): void;
|
|
2530
|
+
}
|
|
2531
|
+
|
|
2566
2532
|
type WebhookVerifyReason = 'signature_mismatch' | 'timestamp_skew' | 'malformed_signature' | 'missing_secret' | 'replay';
|
|
2567
2533
|
interface VerifyWebhookInput {
|
|
2568
2534
|
rawBody: Buffer | Uint8Array | string;
|
|
@@ -2580,4 +2546,4 @@ interface VerifyWebhookResult {
|
|
|
2580
2546
|
declare function signWebhook(rawBody: Buffer | Uint8Array | string, secret: string, timestamp?: string): string;
|
|
2581
2547
|
declare function verifyWebhook(input: VerifyWebhookInput): VerifyWebhookResult;
|
|
2582
2548
|
|
|
2583
|
-
export { AbortError, AccessDeniedError, type AddColumnInput, type AddCommentInput, type AddGrantInput, AlreadyAccessedError, AlreadyActiveError, AlreadyDeletedError, AlreadyInactiveError, AlreadyMemberError, AlreadyRevokedError, AlreadySettledError, type AnonymizeInput, type AppAccess, type AppCategory, type AppID, type AppId, type AppResponse, AppScopedClient, AppScopedDataClient, type AppSlug, type AppTable, type AppTemplate, AppUnavailableError, AppsClient, AuditClient, type AuditEvent, type AuditEventID, type AuthProvider, type AuthRing, AuthorizationPendingError, AuthzClient, type AuthzGrant, type AuthzSubject, type AuthzTag, AxHubClient, type AxHubClientOptions, AxHubError, type AxHubErrorInit, BadRequestError, type Branded, type
|
|
2549
|
+
export { AbortError, AccessDeniedError, type AddColumnInput, type AddCommentInput, type AddGrantInput, AlreadyAccessedError, AlreadyActiveError, AlreadyDeletedError, AlreadyInactiveError, AlreadyMemberError, AlreadyRevokedError, AlreadySettledError, type AnonymizeInput, type AppAccess, type AppCategory, type AppID, type AppId, type AppResponse, AppScopedClient, AppScopedDataClient, type AppSlug, type AppTable, type AppTemplate, AppUnavailableError, AppsClient, AuditClient, type AuditEvent, type AuditEventID, type AuthProvider, type AuthRing, AuthorizationPendingError, AuthzClient, type AuthzGrant, type AuthzSubject, type AuthzTag, AxHubClient, type AxHubClientOptions, AxHubError, type AxHubErrorInit, BadRequestError, type Branded, type BulkInviteResult, type CatalogAncestor, type CatalogConnector, type CatalogKind, type CatalogKindAction, type CatalogPermissionsReadDetail, type CatalogPermissionsReadList, type CatalogResourceDetail, type CatalogResourceFilter, type CatalogResourceView, type CatalogTag, type ColumnType, type Comment, ConfigurationError, ConflictError, type ConnectGitInput, type ConnectorID, type CreateAppInput, type CreateCategoryInput, type CreateDeploymentInput, type CreateOAuthClientInput, type CreateTableInput, type CreateTenantInput, type CursorDirection, DEFAULT_BASE_URL, type DataBulkResult, DataClient, type DataCountOptions, type DataGetOptions, type DataListOptions, type DataOrderBy, DataTableClient, type DataTableSchema, type DecideInput, type DecideResult, DecodeError, type DeploymentFailureReason, type DeploymentID, type DeploymentId, type DeploymentResponse, type DeploymentStatus, DeploymentsClient, type DeviceAuthorizationResponse, DeviceFlowDeniedError, DeviceFlowTimeoutError, type DiscoverAppsOptions, type DiscoverOptions, type DispatchContext, DomainTakenError, DuplicateError, type EmailDomain, type EmitAuditEventInput, EmptyError, type EnvVar, ExpiredTokenError, type FetchLike, type FieldError, ForbiddenError, GatewayCatalogClient, GatewayClient, type GatewayConnector, type GatewayEngine, type GatewayQueryColumn, type GatewayQueryInput, type GatewayQueryResult, type GatewayResource, type GitConnection, type GitConnectionSetup, type GitConnectionStatus, type GithubInstallStart, type GrantID, type GrantPrincipalType, type GrantScope, IdentityClient, IdentityDeviceCodeClient, IdentityMeClient, IdentityOAuthClient, IdentityOIDCClient, IdentityPATClient, type IdentityProvider, IdentityProviderClient, IdentitySystemOAuthClientsClient, type InferRow, type InstallStartInput, type IntegrityCheckResult, InternalServerError, IntrospectFailedError, InvalidCursorError, InvalidGrantError, InvalidPathError, InvalidStateTransitionError, InvalidValueError, InvitationExpiredError, type InviteTenantMemberInput, type InvokeInput, type InvokeResult, type IssuePersonalAccessTokenInput, type IssuePersonalAccessTokenResult, type KeysetCursor, LastAdminError, LegacyCursorError, type LikeResult, type LikeStatus, type ListAllItem, type ListAllOptions, type ListOptions, type Logger, type MeResponse, type MockClientOptions, type MockFixtures, MockInProductionError, type MockRow, type MockSchemas, MockStore, NetworkError, NoAuth, NotAdminError, NotAllowedError, NotDeletedError, NotFoundError, NotMemberError, type OAuthClient, type OAuthClientWithSecret, OAuthError, type OAuthErrorInit, type OAuthTokenResponse, type OrderByField, type PATID, type PATSummary, type PaginatedList, type ParsedFrame, type PatId, PendingExistsError, PermanentlyDeletedError, PermissionDeniedError, PoolStaleError, PreconditionFailedError, type PublicationRequest, type PublicationRequestStatus, PublicationRequestsClient, type QueryExpr, type RateLimitStrategy, RateLimitedError, type RequestId, RequiredError, type ResourceID, type RetryInfo, type SSEStream, ScanLimitExceededError, SchemaCache, type SchemaCacheOptions, SchemaNameTakenError, type SchemaShapeFromRow, type SelectColumns, type SettlePublicationInput, type SignIconUploadInput, type SignIconUploadResult, SlowDownError, SlugTakenError, StaticTokenAuth, StreamConsumedError, type StreamItem, type SubjectID, type SubmitPublicationInput, type SystemOAuthClient, type TableColumn, type TableConstraint, type TableGrant, type TableID, type TableIndex, TableNotFoundError, type TableSchema, type TagID, type Tenant, TenantGatewayClient, type TenantID, type TenantId, type TenantInvitation, type TenantMember, TenantScopedAppsClient, TenantScopedClient, type TenantSlug, TenantSlugRequiredError, TenantsClient, TimeoutError, TokenExpiredError, TokenInvalidError, TokenMissingError, type TokenType, UnauthenticatedError, UnavailableError, type UnlikeResult, type UnpublishInput, type UpdateAppInput, type UpdateGitConnectionInput, type UpdateTenantInput, type UserID, type UserId, ValidationError, type VerifyWebhookInput, type VerifyWebhookResult, WebhookVerificationError, type WebhookVerifyReason, and, asAppId, asAppSlug, asDeploymentId, asPatId, asRequestId, asTenantId, asTenantSlug, asUserId, assertMockModeAllowed, createMockStore, cursorFromRow, decodeCursor, defineSchema, dispatch, encodeCursor, escapeLike, formatErrorMessage, getAccessibleColumns, getMaskHint, id, isAllowed, isOAuthPath, isPolicyDeny, isSqlFormatError, not, or, orderByFingerprint, parseRetryAfter, raw, schemaCacheKey, signWebhook, tableFromPath, verifyWebhook, where };
|
package/dist/index.d.ts
CHANGED
|
@@ -404,7 +404,8 @@ interface EmitAuditEventInput {
|
|
|
404
404
|
interface IntegrityCheckResult {
|
|
405
405
|
ok: boolean;
|
|
406
406
|
checked: number;
|
|
407
|
-
|
|
407
|
+
firstBadSeq?: number;
|
|
408
|
+
reason?: string;
|
|
408
409
|
}
|
|
409
410
|
interface AnonymizeInput {
|
|
410
411
|
subjectId?: string;
|
|
@@ -453,6 +454,13 @@ declare class AuditServerForTenantClient {
|
|
|
453
454
|
private readonly http;
|
|
454
455
|
private readonly tenantSlug;
|
|
455
456
|
constructor(http: HttpClient, tenantSlug: string);
|
|
457
|
+
/**
|
|
458
|
+
* Emit a server-side audit event.
|
|
459
|
+
*
|
|
460
|
+
* @remarks The backend route `POST /audit-events/server` is not yet
|
|
461
|
+
* implemented (currently 404). Retained ahead of backend support — see
|
|
462
|
+
* ADR-0040. Do not rely on this in production until the route ships.
|
|
463
|
+
*/
|
|
456
464
|
emit(input: EmitAuditEventInput, opts?: RequestOptions): Promise<AuditEvent>;
|
|
457
465
|
}
|
|
458
466
|
|
|
@@ -508,7 +516,7 @@ declare class Crud<T extends {
|
|
|
508
516
|
private readonly http;
|
|
509
517
|
private readonly base;
|
|
510
518
|
constructor(http: HttpClient, base: string);
|
|
511
|
-
list(opts?:
|
|
519
|
+
list(opts?: RequestOptions): Promise<T[]>;
|
|
512
520
|
get(id: string, opts?: RequestOptions): Promise<T>;
|
|
513
521
|
create(input: Record<string, unknown>, opts?: RequestOptions): Promise<T>;
|
|
514
522
|
update(id: string, patch: Record<string, unknown>, opts?: RequestOptions): Promise<T>;
|
|
@@ -567,6 +575,7 @@ interface BulkInviteResult {
|
|
|
567
575
|
rejected: Array<{
|
|
568
576
|
email: string;
|
|
569
577
|
reason: string;
|
|
578
|
+
message?: string;
|
|
570
579
|
}>;
|
|
571
580
|
}
|
|
572
581
|
interface EmailDomain {
|
|
@@ -613,9 +622,9 @@ declare class TenantMembersForTenantClient {
|
|
|
613
622
|
list(opts?: PageRequestOptions): Promise<PaginatedList<TenantMember>>;
|
|
614
623
|
update(membershipId: string, patch: {
|
|
615
624
|
role?: string;
|
|
616
|
-
}, opts?: RequestOptions): Promise<
|
|
617
|
-
deactivate(membershipId: string, opts?: RequestOptions): Promise<
|
|
618
|
-
reactivate(membershipId: string, opts?: RequestOptions): Promise<
|
|
625
|
+
}, opts?: RequestOptions): Promise<void>;
|
|
626
|
+
deactivate(membershipId: string, opts?: RequestOptions): Promise<void>;
|
|
627
|
+
reactivate(membershipId: string, opts?: RequestOptions): Promise<void>;
|
|
619
628
|
}
|
|
620
629
|
declare class TenantInvitationsClient {
|
|
621
630
|
private readonly http;
|
|
@@ -851,11 +860,13 @@ declare class AppsCrudMixin {
|
|
|
851
860
|
signIconDarkUploadURL(appId: string, input: SignIconUploadInput): Promise<SignIconUploadResult>;
|
|
852
861
|
private signIconImpl;
|
|
853
862
|
/**
|
|
854
|
-
* List
|
|
855
|
-
* Useful for "apps in my dashboard"
|
|
863
|
+
* List the caller's workspace apps — owned plus apps they've been granted
|
|
864
|
+
* access to (not necessarily owned). Useful for "apps in my dashboard" views.
|
|
856
865
|
*
|
|
857
|
-
* Backend route is `/api/v1/
|
|
858
|
-
*
|
|
866
|
+
* Backend route is `/api/v1/me/apps/workspace`, which returns plain
|
|
867
|
+
* `appResponse` rows. (The legacy `/users/me/apps` route returns access
|
|
868
|
+
* records with a different shape, so it is not used here.) Surfaced under
|
|
869
|
+
* `sdk.apps` to avoid a `sdk.users.*` namespace for one method (eng review #3).
|
|
859
870
|
*
|
|
860
871
|
* @example happy
|
|
861
872
|
* const mine = await sdk.apps.listMine()
|
|
@@ -1767,68 +1778,45 @@ declare class AppScopedTablesClient {
|
|
|
1767
1778
|
inspect(tableName: string, opts?: RequestOptions): Promise<unknown>;
|
|
1768
1779
|
}
|
|
1769
1780
|
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
type: 'item';
|
|
1777
|
-
value: T;
|
|
1778
|
-
id: string | undefined;
|
|
1779
|
-
} | {
|
|
1780
|
-
type: 'gap';
|
|
1781
|
-
sinceId: string | undefined;
|
|
1782
|
-
missingCount?: number;
|
|
1783
|
-
} | {
|
|
1784
|
-
type: 'decode-skip';
|
|
1785
|
-
frame: ParsedFrame;
|
|
1786
|
-
error: AxHubError;
|
|
1787
|
-
};
|
|
1788
|
-
interface SSEStream<T> extends AsyncIterable<StreamItem<T>> {
|
|
1789
|
-
dispose(): void;
|
|
1781
|
+
type DeploymentStatus = 'pending' | 'building' | 'pushing' | 'deploying' | 'succeeded' | 'failed' | 'cancelled';
|
|
1782
|
+
interface DeploymentFailureReason {
|
|
1783
|
+
stage: string;
|
|
1784
|
+
code: string;
|
|
1785
|
+
category: string;
|
|
1786
|
+
message: string;
|
|
1790
1787
|
}
|
|
1791
|
-
|
|
1792
|
-
type DeploymentStatus = 'queued' | 'building' | 'deploying' | 'succeeded' | 'failed' | 'cancelled' | 'rolled_back';
|
|
1793
1788
|
interface DeploymentResponse {
|
|
1794
1789
|
id: string;
|
|
1795
1790
|
appId: string;
|
|
1791
|
+
commitSha: string;
|
|
1796
1792
|
status: DeploymentStatus;
|
|
1793
|
+
/** Stage in progress (building/pushing/deploying); null once terminal. */
|
|
1794
|
+
currentStage: string | null;
|
|
1795
|
+
/** Pushed image path; null before the build completes. */
|
|
1796
|
+
imageUri: string | null;
|
|
1797
1797
|
triggerSource: string;
|
|
1798
1798
|
startedAt: string | null;
|
|
1799
1799
|
completedAt: string | null;
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
createdAt: string;
|
|
1803
|
-
updatedAt: string;
|
|
1800
|
+
/** Populated only when status === 'failed'; null otherwise. */
|
|
1801
|
+
failureReason: DeploymentFailureReason | null;
|
|
1804
1802
|
}
|
|
1805
1803
|
interface CreateDeploymentInput {
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
line: string;
|
|
1811
|
-
}
|
|
1812
|
-
interface PodLogEvent {
|
|
1813
|
-
ts: string;
|
|
1814
|
-
line: string;
|
|
1815
|
-
}
|
|
1816
|
-
interface PodEventEvent {
|
|
1817
|
-
type: 'Normal' | 'Warning';
|
|
1818
|
-
reason: string;
|
|
1819
|
-
message: string;
|
|
1820
|
-
ts: string;
|
|
1804
|
+
/** Specific git commit SHA (40-hex) to build. Omit to deploy the GitConnection default-branch HEAD. */
|
|
1805
|
+
commitSha?: string;
|
|
1806
|
+
/** Force a rebuild even if this commit already has a built image (dependency / base-image refresh). */
|
|
1807
|
+
forceRebuild?: boolean;
|
|
1821
1808
|
}
|
|
1822
1809
|
declare class DeploymentsClient {
|
|
1823
1810
|
private readonly http;
|
|
1824
1811
|
constructor(http: HttpClient);
|
|
1825
1812
|
/**
|
|
1826
1813
|
* Trigger a new deployment. Returns immediately with the deployment row
|
|
1827
|
-
* in `
|
|
1828
|
-
* `get()` to observe progression.
|
|
1814
|
+
* in `pending` or `building` state; poll `get()` to observe progression.
|
|
1829
1815
|
*
|
|
1830
1816
|
* @example happy
|
|
1831
|
-
* const dep = await sdk.deployments.create('app_abc', {
|
|
1817
|
+
* const dep = await sdk.deployments.create('app_abc', { commitSha: 'a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0' })
|
|
1818
|
+
* // or omit input entirely to deploy the default-branch HEAD:
|
|
1819
|
+
* const head = await sdk.deployments.create('app_abc')
|
|
1832
1820
|
*
|
|
1833
1821
|
* @example failure
|
|
1834
1822
|
* try { await sdk.deployments.create('app_abc') }
|
|
@@ -1851,7 +1839,7 @@ declare class DeploymentsClient {
|
|
|
1851
1839
|
*
|
|
1852
1840
|
* @example happy
|
|
1853
1841
|
* const dep = await sdk.deployments.get('app_abc', 'dep_123')
|
|
1854
|
-
* if (dep.status === 'succeeded') console.log(dep.
|
|
1842
|
+
* if (dep.status === 'succeeded') console.log(dep.imageUri)
|
|
1855
1843
|
*/
|
|
1856
1844
|
get(appId: string, did: string): Promise<DeploymentResponse>;
|
|
1857
1845
|
/**
|
|
@@ -1878,55 +1866,6 @@ declare class DeploymentsClient {
|
|
|
1878
1866
|
* }
|
|
1879
1867
|
*/
|
|
1880
1868
|
rollback(appId: string, did: string): Promise<void>;
|
|
1881
|
-
/**
|
|
1882
|
-
* Stream Cloud Build log lines for a deployment via SSE. Returns an
|
|
1883
|
-
* AsyncIterable that yields `{type:'item', value}`, `{type:'gap'}` (on
|
|
1884
|
-
* reconnect when ring buffer rolled), or `{type:'decode-skip'}` (single
|
|
1885
|
-
* malformed frame). Iterator completes when the deployment reaches a
|
|
1886
|
-
* terminal state.
|
|
1887
|
-
*
|
|
1888
|
-
* @example happy
|
|
1889
|
-
* const ctrl = new AbortController()
|
|
1890
|
-
* for await (const ev of sdk.deployments.streamBuildLogs(appId, did, { signal: ctrl.signal })) {
|
|
1891
|
-
* if (ev.type === 'item') process.stdout.write(ev.value.line + '\n')
|
|
1892
|
-
* }
|
|
1893
|
-
*
|
|
1894
|
-
* @example failure
|
|
1895
|
-
* try {
|
|
1896
|
-
* for await (const _ of sdk.deployments.streamBuildLogs(appId, did)) {}
|
|
1897
|
-
* } catch (e) {
|
|
1898
|
-
* if (e instanceof StreamConsumedError) /* iterating twice — forbidden *\/
|
|
1899
|
-
* }
|
|
1900
|
-
*/
|
|
1901
|
-
streamBuildLogs(appId: string, did: string, opts?: {
|
|
1902
|
-
signal?: AbortSignal;
|
|
1903
|
-
}): SSEStream<BuildLogEvent>;
|
|
1904
|
-
/**
|
|
1905
|
-
* Stream runtime pod stdout/stderr after deploy succeeds. Same iterator
|
|
1906
|
-
* semantics as `streamBuildLogs`. Ring buffer cap = 200 most recent lines.
|
|
1907
|
-
*
|
|
1908
|
-
* @example happy
|
|
1909
|
-
* for await (const ev of sdk.deployments.streamPodLogs(appId, did)) {
|
|
1910
|
-
* if (ev.type === 'item') console.log(ev.value.line)
|
|
1911
|
-
* }
|
|
1912
|
-
*/
|
|
1913
|
-
streamPodLogs(appId: string, did: string, opts?: {
|
|
1914
|
-
signal?: AbortSignal;
|
|
1915
|
-
}): SSEStream<PodLogEvent>;
|
|
1916
|
-
/**
|
|
1917
|
-
* Stream Kubernetes pod events (Normal / Warning — CrashLoopBackOff,
|
|
1918
|
-
* OOMKilled, ImagePullBackOff, ...). Use for self-heal signal detection.
|
|
1919
|
-
*
|
|
1920
|
-
* @example happy
|
|
1921
|
-
* for await (const ev of sdk.deployments.streamPodEvents(appId, did)) {
|
|
1922
|
-
* if (ev.type === 'item' && ev.value.type === 'Warning') {
|
|
1923
|
-
* console.warn(ev.value.reason, ev.value.message)
|
|
1924
|
-
* }
|
|
1925
|
-
* }
|
|
1926
|
-
*/
|
|
1927
|
-
streamPodEvents(appId: string, did: string, opts?: {
|
|
1928
|
-
signal?: AbortSignal;
|
|
1929
|
-
}): SSEStream<PodEventEvent>;
|
|
1930
1869
|
}
|
|
1931
1870
|
|
|
1932
1871
|
interface GatewayEngine {
|
|
@@ -2166,10 +2105,10 @@ declare function isAllowed(r: GatewayQueryResult | InvokeResult): boolean;
|
|
|
2166
2105
|
/**
|
|
2167
2106
|
* True when a deny is an SQL-format rejection the caller can fix by editing the SQL.
|
|
2168
2107
|
*
|
|
2169
|
-
*
|
|
2170
|
-
*
|
|
2171
|
-
*
|
|
2172
|
-
*
|
|
2108
|
+
* The live backend wraps these as `"SQL 형식 오류: safesql: only SELECT or WITH allowed
|
|
2109
|
+
* (got \"delete\")"` — a Korean prefix plus the inner `safesql:` marker. Matches either so
|
|
2110
|
+
* it survives wording shifts in the wrapper. String matching is brittle by construction;
|
|
2111
|
+
* branch on this for UX hints only, not control flow that must be exact.
|
|
2173
2112
|
*/
|
|
2174
2113
|
declare function isSqlFormatError(r: GatewayQueryResult | InvokeResult): boolean;
|
|
2175
2114
|
/** True when a deny is a policy denial (not an SQL-format error). Editing SQL will not help. */
|
|
@@ -2358,9 +2297,14 @@ declare class IdentityProviderClient {
|
|
|
2358
2297
|
declare class IdentitySystemOAuthClientsClient {
|
|
2359
2298
|
private readonly http;
|
|
2360
2299
|
constructor(http: HttpClient);
|
|
2300
|
+
/**
|
|
2301
|
+
* Fetch an OAuth client by ID. This is the only global OAuth-client route on
|
|
2302
|
+
* the backend (`GET /oauth-clients/{clientID}`). To **create** an OAuth
|
|
2303
|
+
* client, use the app-scoped `sdk.apps.oauthClients.create(appId, …)` — the
|
|
2304
|
+
* backend only exposes creation under `POST /apps/{appID}/oauth-clients/`.
|
|
2305
|
+
* There is no global create/delete route.
|
|
2306
|
+
*/
|
|
2361
2307
|
get(clientId: string, opts?: RequestOptions): Promise<SystemOAuthClient>;
|
|
2362
|
-
create(input: Record<string, unknown>, opts?: RequestOptions): Promise<SystemOAuthClient>;
|
|
2363
|
-
delete(clientId: string, opts?: RequestOptions): Promise<void>;
|
|
2364
2308
|
}
|
|
2365
2309
|
|
|
2366
2310
|
interface SettlePublicationInput {
|
|
@@ -2563,6 +2507,28 @@ declare class NoAuth implements AuthProvider {
|
|
|
2563
2507
|
onUnauthorized(): Promise<boolean>;
|
|
2564
2508
|
}
|
|
2565
2509
|
|
|
2510
|
+
interface ParsedFrame {
|
|
2511
|
+
id?: string;
|
|
2512
|
+
event?: string;
|
|
2513
|
+
data: string;
|
|
2514
|
+
}
|
|
2515
|
+
type StreamItem<T> = {
|
|
2516
|
+
type: 'item';
|
|
2517
|
+
value: T;
|
|
2518
|
+
id: string | undefined;
|
|
2519
|
+
} | {
|
|
2520
|
+
type: 'gap';
|
|
2521
|
+
sinceId: string | undefined;
|
|
2522
|
+
missingCount?: number;
|
|
2523
|
+
} | {
|
|
2524
|
+
type: 'decode-skip';
|
|
2525
|
+
frame: ParsedFrame;
|
|
2526
|
+
error: AxHubError;
|
|
2527
|
+
};
|
|
2528
|
+
interface SSEStream<T> extends AsyncIterable<StreamItem<T>> {
|
|
2529
|
+
dispose(): void;
|
|
2530
|
+
}
|
|
2531
|
+
|
|
2566
2532
|
type WebhookVerifyReason = 'signature_mismatch' | 'timestamp_skew' | 'malformed_signature' | 'missing_secret' | 'replay';
|
|
2567
2533
|
interface VerifyWebhookInput {
|
|
2568
2534
|
rawBody: Buffer | Uint8Array | string;
|
|
@@ -2580,4 +2546,4 @@ interface VerifyWebhookResult {
|
|
|
2580
2546
|
declare function signWebhook(rawBody: Buffer | Uint8Array | string, secret: string, timestamp?: string): string;
|
|
2581
2547
|
declare function verifyWebhook(input: VerifyWebhookInput): VerifyWebhookResult;
|
|
2582
2548
|
|
|
2583
|
-
export { AbortError, AccessDeniedError, type AddColumnInput, type AddCommentInput, type AddGrantInput, AlreadyAccessedError, AlreadyActiveError, AlreadyDeletedError, AlreadyInactiveError, AlreadyMemberError, AlreadyRevokedError, AlreadySettledError, type AnonymizeInput, type AppAccess, type AppCategory, type AppID, type AppId, type AppResponse, AppScopedClient, AppScopedDataClient, type AppSlug, type AppTable, type AppTemplate, AppUnavailableError, AppsClient, AuditClient, type AuditEvent, type AuditEventID, type AuthProvider, type AuthRing, AuthorizationPendingError, AuthzClient, type AuthzGrant, type AuthzSubject, type AuthzTag, AxHubClient, type AxHubClientOptions, AxHubError, type AxHubErrorInit, BadRequestError, type Branded, type
|
|
2549
|
+
export { AbortError, AccessDeniedError, type AddColumnInput, type AddCommentInput, type AddGrantInput, AlreadyAccessedError, AlreadyActiveError, AlreadyDeletedError, AlreadyInactiveError, AlreadyMemberError, AlreadyRevokedError, AlreadySettledError, type AnonymizeInput, type AppAccess, type AppCategory, type AppID, type AppId, type AppResponse, AppScopedClient, AppScopedDataClient, type AppSlug, type AppTable, type AppTemplate, AppUnavailableError, AppsClient, AuditClient, type AuditEvent, type AuditEventID, type AuthProvider, type AuthRing, AuthorizationPendingError, AuthzClient, type AuthzGrant, type AuthzSubject, type AuthzTag, AxHubClient, type AxHubClientOptions, AxHubError, type AxHubErrorInit, BadRequestError, type Branded, type BulkInviteResult, type CatalogAncestor, type CatalogConnector, type CatalogKind, type CatalogKindAction, type CatalogPermissionsReadDetail, type CatalogPermissionsReadList, type CatalogResourceDetail, type CatalogResourceFilter, type CatalogResourceView, type CatalogTag, type ColumnType, type Comment, ConfigurationError, ConflictError, type ConnectGitInput, type ConnectorID, type CreateAppInput, type CreateCategoryInput, type CreateDeploymentInput, type CreateOAuthClientInput, type CreateTableInput, type CreateTenantInput, type CursorDirection, DEFAULT_BASE_URL, type DataBulkResult, DataClient, type DataCountOptions, type DataGetOptions, type DataListOptions, type DataOrderBy, DataTableClient, type DataTableSchema, type DecideInput, type DecideResult, DecodeError, type DeploymentFailureReason, type DeploymentID, type DeploymentId, type DeploymentResponse, type DeploymentStatus, DeploymentsClient, type DeviceAuthorizationResponse, DeviceFlowDeniedError, DeviceFlowTimeoutError, type DiscoverAppsOptions, type DiscoverOptions, type DispatchContext, DomainTakenError, DuplicateError, type EmailDomain, type EmitAuditEventInput, EmptyError, type EnvVar, ExpiredTokenError, type FetchLike, type FieldError, ForbiddenError, GatewayCatalogClient, GatewayClient, type GatewayConnector, type GatewayEngine, type GatewayQueryColumn, type GatewayQueryInput, type GatewayQueryResult, type GatewayResource, type GitConnection, type GitConnectionSetup, type GitConnectionStatus, type GithubInstallStart, type GrantID, type GrantPrincipalType, type GrantScope, IdentityClient, IdentityDeviceCodeClient, IdentityMeClient, IdentityOAuthClient, IdentityOIDCClient, IdentityPATClient, type IdentityProvider, IdentityProviderClient, IdentitySystemOAuthClientsClient, type InferRow, type InstallStartInput, type IntegrityCheckResult, InternalServerError, IntrospectFailedError, InvalidCursorError, InvalidGrantError, InvalidPathError, InvalidStateTransitionError, InvalidValueError, InvitationExpiredError, type InviteTenantMemberInput, type InvokeInput, type InvokeResult, type IssuePersonalAccessTokenInput, type IssuePersonalAccessTokenResult, type KeysetCursor, LastAdminError, LegacyCursorError, type LikeResult, type LikeStatus, type ListAllItem, type ListAllOptions, type ListOptions, type Logger, type MeResponse, type MockClientOptions, type MockFixtures, MockInProductionError, type MockRow, type MockSchemas, MockStore, NetworkError, NoAuth, NotAdminError, NotAllowedError, NotDeletedError, NotFoundError, NotMemberError, type OAuthClient, type OAuthClientWithSecret, OAuthError, type OAuthErrorInit, type OAuthTokenResponse, type OrderByField, type PATID, type PATSummary, type PaginatedList, type ParsedFrame, type PatId, PendingExistsError, PermanentlyDeletedError, PermissionDeniedError, PoolStaleError, PreconditionFailedError, type PublicationRequest, type PublicationRequestStatus, PublicationRequestsClient, type QueryExpr, type RateLimitStrategy, RateLimitedError, type RequestId, RequiredError, type ResourceID, type RetryInfo, type SSEStream, ScanLimitExceededError, SchemaCache, type SchemaCacheOptions, SchemaNameTakenError, type SchemaShapeFromRow, type SelectColumns, type SettlePublicationInput, type SignIconUploadInput, type SignIconUploadResult, SlowDownError, SlugTakenError, StaticTokenAuth, StreamConsumedError, type StreamItem, type SubjectID, type SubmitPublicationInput, type SystemOAuthClient, type TableColumn, type TableConstraint, type TableGrant, type TableID, type TableIndex, TableNotFoundError, type TableSchema, type TagID, type Tenant, TenantGatewayClient, type TenantID, type TenantId, type TenantInvitation, type TenantMember, TenantScopedAppsClient, TenantScopedClient, type TenantSlug, TenantSlugRequiredError, TenantsClient, TimeoutError, TokenExpiredError, TokenInvalidError, TokenMissingError, type TokenType, UnauthenticatedError, UnavailableError, type UnlikeResult, type UnpublishInput, type UpdateAppInput, type UpdateGitConnectionInput, type UpdateTenantInput, type UserID, type UserId, ValidationError, type VerifyWebhookInput, type VerifyWebhookResult, WebhookVerificationError, type WebhookVerifyReason, and, asAppId, asAppSlug, asDeploymentId, asPatId, asRequestId, asTenantId, asTenantSlug, asUserId, assertMockModeAllowed, createMockStore, cursorFromRow, decodeCursor, defineSchema, dispatch, encodeCursor, escapeLike, formatErrorMessage, getAccessibleColumns, getMaskHint, id, isAllowed, isOAuthPath, isPolicyDeny, isSqlFormatError, not, or, orderByFingerprint, parseRetryAfter, raw, schemaCacheKey, signWebhook, tableFromPath, verifyWebhook, where };
|