Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 60 additions & 14 deletions src/content/api-reference/authentication.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,44 @@ const client = new XetherClient({ apiKey: process.env.XETHER_API_KEY });

### API Key Scopes

| Scope | Description |
| ------------------ | ---------------------------------- |
| `datasets:read` | Read dataset metadata and versions |
| `datasets:write` | Create and update datasets |
| `pipelines:read` | Read pipeline definitions |
| `pipelines:write` | Create and update pipelines |
| `executions:read` | Read execution status and logs |
| `executions:write` | Trigger pipeline executions |
| `admin` | Full access (use with caution) |
<Table>
<TableHeader>
<TableRow>
<TableHead>Scope</TableHead>
<TableHead>Description</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell className="font-mono">datasets:read</TableCell>
<TableCell>Read dataset metadata and versions</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">datasets:write</TableCell>
<TableCell>Create and update datasets</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">pipelines:read</TableCell>
<TableCell>Read pipeline definitions</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">pipelines:write</TableCell>
<TableCell>Create and update pipelines</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">executions:read</TableCell>
<TableCell>Read execution status and logs</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">executions:write</TableCell>
<TableCell>Trigger pipeline executions</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">admin</TableCell>
<TableCell>Full access (use with caution)</TableCell>
</TableRow>
</TableBody>
</Table>

## OAuth 2.0

Expand Down Expand Up @@ -104,8 +133,25 @@ curl -X POST https://auth.xether.ai/oauth/token \

## Errors

| Code | Meaning |
| ----------------------- | -------------------------------- |
| `401 Unauthorized` | Missing or invalid API key |
| `403 Forbidden` | Valid key but insufficient scope |
| `429 Too Many Requests` | Rate limit exceeded |
<Table>
<TableHeader>
<TableRow>
<TableHead>Code</TableHead>
<TableHead>Meaning</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell className="font-mono">401 Unauthorized</TableCell>
<TableCell>Missing or invalid API key</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">403 Forbidden</TableCell>
<TableCell>Valid key but insufficient scope</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">429 Too Many Requests</TableCell>
<TableCell>Rate limit exceeded</TableCell>
</TableRow>
</TableBody>
</Table>
59 changes: 48 additions & 11 deletions src/content/api-reference/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,28 @@ Errors return a non-2xx status with:

## Rate Limits

| Plan | Requests/minute |
| ---------- | --------------- |
| Free | 60 |
| Pro | 600 |
| Enterprise | Unlimited |
<Table>
<TableHeader>
<TableRow>
<TableHead>Plan</TableHead>
<TableHead>Requests/minute</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>Free</TableCell>
<TableCell>60</TableCell>
</TableRow>
<TableRow>
<TableCell>Pro</TableCell>
<TableCell>600</TableCell>
</TableRow>
<TableRow>
<TableCell>Enterprise</TableCell>
<TableCell>Unlimited</TableCell>
</TableRow>
</TableBody>
</Table>

Rate limit headers are included in every response:

Expand All @@ -74,12 +91,32 @@ X-RateLimit-Reset: 1705312260

## Endpoints

| Resource | Description |
| ---------------------------------------------------- | --------------------------------- |
| [Authentication](/docs/api-reference/authentication) | Manage API keys and OAuth tokens |
| [Datasets](/docs/api-reference/datasets) | Create, list, and manage datasets |
| [Pipelines](/docs/api-reference/pipelines) | Define and manage pipelines |
| [Executions](/docs/api-reference/executions) | Trigger and monitor pipeline runs |
<Table>
<TableHeader>
<TableRow>
<TableHead>Resource</TableHead>
<TableHead>Description</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell><a href="/docs/api-reference/authentication" className="text-primary hover:underline">Authentication</a></TableCell>
<TableCell>Manage API keys and OAuth tokens</TableCell>
</TableRow>
<TableRow>
<TableCell><a href="/docs/api-reference/datasets" className="text-primary hover:underline">Datasets</a></TableCell>
<TableCell>Create, list, and manage datasets</TableCell>
</TableRow>
<TableRow>
<TableCell><a href="/docs/api-reference/pipelines" className="text-primary hover:underline">Pipelines</a></TableCell>
<TableCell>Define and manage pipelines</TableCell>
</TableRow>
<TableRow>
<TableCell><a href="/docs/api-reference/executions" className="text-primary hover:underline">Executions</a></TableCell>
<TableCell>Trigger and monitor pipeline runs</TableCell>
</TableRow>
</TableBody>
</Table>

## SDKs

Expand Down
37 changes: 30 additions & 7 deletions src/content/getting-started/core-concepts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,36 @@ Dataset → [Ingest] → [Clean] → [Validate] → [Transform] → [Augment]

### Stage Types

| Stage | Purpose |
| ----------- | ------------------------------------------- |
| `ingest` | Read data from a source (S3, database, API) |
| `clean` | Remove nulls, normalize formats, fix types |
| `validate` | Assert data quality rules |
| `transform` | Reshape, join, aggregate data |
| `augment` | Enrich with external data or ML predictions |
<Table>
<TableHeader>
<TableRow>
<TableHead>Stage</TableHead>
<TableHead>Purpose</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell className="font-mono">ingest</TableCell>
<TableCell>Read data from a source (S3, database, API)</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">clean</TableCell>
<TableCell>Remove nulls, normalize formats, fix types</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">validate</TableCell>
<TableCell>Assert data quality rules</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">transform</TableCell>
<TableCell>Reshape, join, aggregate data</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">augment</TableCell>
<TableCell>Enrich with external data or ML predictions</TableCell>
</TableRow>
</TableBody>
</Table>

## Versions

Expand Down
115 changes: 96 additions & 19 deletions src/content/integrations/postgresql.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -262,25 +262,102 @@ config:

## Data Type Mapping

| PostgreSQL Type | Xether AI Type | Notes |
|-----------------|----------------|-------|
| INTEGER | integer | 32-bit integer |
| BIGINT | long | 64-bit integer |
| SMALLINT | short | 16-bit integer |
| DECIMAL/NUMERIC | decimal | Precision and scale preserved |
| REAL | float | Single precision |
| DOUBLE PRECISION | double | Double precision |
| BOOLEAN | boolean | True/False values |
| VARCHAR/TEXT | string | Variable length string |
| CHAR | string | Fixed length string |
| DATE | date | Date without time |
| TIME | time | Time without date |
| TIMESTAMP | timestamp | Timestamp without timezone |
| TIMESTAMPTZ | timestamp | Timestamp with timezone |
| UUID | string | UUID as string |
| JSON/JSONB | object | JSON-like structure |
| ARRAY | array | Array of values |
| BYTEA | binary | Binary data |
<Table>
<TableHeader>
<TableRow>
<TableHead>PostgreSQL Type</TableHead>
<TableHead>Xether AI Type</TableHead>
<TableHead>Notes</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell className="font-mono">INTEGER</TableCell>
<TableCell className="font-mono">integer</TableCell>
<TableCell>32-bit integer</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">BIGINT</TableCell>
<TableCell className="font-mono">long</TableCell>
<TableCell>64-bit integer</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">SMALLINT</TableCell>
<TableCell className="font-mono">short</TableCell>
<TableCell>16-bit integer</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">DECIMAL/NUMERIC</TableCell>
<TableCell className="font-mono">decimal</TableCell>
<TableCell>Precision and scale preserved</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">REAL</TableCell>
<TableCell className="font-mono">float</TableCell>
<TableCell>Single precision</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">DOUBLE PRECISION</TableCell>
<TableCell className="font-mono">double</TableCell>
<TableCell>Double precision</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">BOOLEAN</TableCell>
<TableCell className="font-mono">boolean</TableCell>
<TableCell>True/False values</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">VARCHAR/TEXT</TableCell>
<TableCell className="font-mono">string</TableCell>
<TableCell>Variable length string</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">CHAR</TableCell>
<TableCell className="font-mono">string</TableCell>
<TableCell>Fixed length string</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">DATE</TableCell>
<TableCell className="font-mono">date</TableCell>
<TableCell>Date without time</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">TIME</TableCell>
<TableCell className="font-mono">time</TableCell>
<TableCell>Time without date</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">TIMESTAMP</TableCell>
<TableCell className="font-mono">timestamp</TableCell>
<TableCell>Timestamp without timezone</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">TIMESTAMPTZ</TableCell>
<TableCell className="font-mono">timestamp</TableCell>
<TableCell>Timestamp with timezone</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">UUID</TableCell>
<TableCell className="font-mono">string</TableCell>
<TableCell>UUID as string</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">JSON/JSONB</TableCell>
<TableCell className="font-mono">object</TableCell>
<TableCell>JSON-like structure</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">ARRAY</TableCell>
<TableCell className="font-mono">array</TableCell>
<TableCell>Array of values</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-mono">BYTEA</TableCell>
<TableCell className="font-mono">binary</TableCell>
<TableCell>Binary data</TableCell>
</TableRow>
</TableBody>
</Table>

## Schema Evolution

Expand Down
Loading