Skip to content

altertable-ai/altertable-lakehouse-js

Altertable Lakehouse JS/TS SDK

TypeScript-first client for the Altertable Lakehouse API.

Installation

npm install @altertable/lakehouse

Configuration

import { AltertableLakehouseClient } from '@altertable/lakehouse';

const client = new AltertableLakehouseClient({
  username: process.env.ALTERTABLE_USERNAME,
  password: process.env.ALTERTABLE_PASSWORD,
  // or basicAuthToken: process.env.ALTERTABLE_BASIC_AUTH_TOKEN,
  userAgentSuffix: 'my-app/1.0.0',
});

The client defaults to https://api.altertable.ai, uses HTTP Basic auth, enables configurable retries, and uses a 60s default read timeout. Override baseUrl, connectTimeoutMs, readTimeoutMs, and retryPolicy when needed.

Examples

append

await client.append({
  catalog: 'memory',
  schema: 'main',
  table: 'events',
  body: { Single: { user_id: 1, action: 'signup' } },
});

query (streamed)

const result = await client.query({ statement: 'SELECT 42 AS answer' });
console.log(result.metadata);
console.log(result.columns);
for await (const row of result.rows) {
  console.log(row);
}

queryAll

const result = await client.queryAll({ statement: 'SELECT 42 AS answer' });
console.log(result.rows);

getQuery

const log = await client.getQuery('123e4567-e89b-12d3-a456-426614174000');
console.log(log);

cancelQuery

const cancelled = await client.cancelQuery(
  '123e4567-e89b-12d3-a456-426614174000',
  '123e4567-e89b-12d3-a456-426614174001',
);
console.log(cancelled);

upsert

await client.upsert(
  {
    catalog: 'memory',
    schema: 'main',
    table: 'events',
    mode: 'create',
  },
  'id,name\n1,Alice\n',
);

validate

const validation = await client.validate({ statement: 'SELECT 1' });
console.log(validation.valid);

Development

npm install
npm run lint
npm test
npm run build

About

Altertable's Lakehouse JS/TS API Client

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors